我正在尝试在 unity 中的 iOS iPhone 游戏(游戏 Arknights 的副本)上制作视差滚动和捕捉滚动视图。但有时(并非总是)当我滑动太快时,滚动视图会卡在滚动视图的 2 个元素之间。在显示这个错误的视频中,我开始非常快速地刷卡,直到出现错误,然后我慢慢地刷卡,一个接一个,看清楚错误。关于如何解决这个问题的任何想法?我的相关脚本如下(如果需要更多请告诉我~):
显示错误的视频:https://youtu.be/tSrRG3kdpnA
void LerpTargetPos()
{
StopAllCoroutines();
StartCoroutine(LerpTargetPosCoroutine());
}
IEnumerator LerpTargetPosCoroutine()
{
if (scrollRect.horizontalNormalizedPosition != targetPos)
{
scrollRect.horizontalNormalizedPosition = Mathf.Lerp(scrollRect.horizontalNormalizedPosition, targetPos, lerpSpeed * Time.deltaTime);
}
if (Mathf.Abs(scrollRect.horizontalNormalizedPosition - targetPos) <= 0.0005f)
{
scrollRect.horizontalNormalizedPosition = targetPos;
}
yield return null;
}
if (canLerp)
{
LerpTargetPos();
}
回答1
好的——原来我把 LerpTargetPos
方法放在 LateUpdate
方法中,而不是 Update
;在我把它放入 Update
之后,一切似乎都正常。