我在脚本中出错或者它是一个错误,我不知道。当我第一次开始游戏时它变得非常流畅,但是在我玩了20秒之后,玩家开始移动得越来越慢,最后他几乎不动。
游戏是Endless Runner,当我死的时候按下重试,然后在每次重试后都会变慢。
脚本
void MovePlayerOnYAxis()
{
foreach (Touch touch in Input.touches)
{
Vector3 newPosition = transform.position;
newPosition.y += Mathf.Clamp(touch.deltaPosition.y * speed, MIN_SPEED, MAX_SPEED) * Time.fixedDeltaTime;
transform.position = newPosition;
}
}
答案 0 :(得分:1)
您的问题在以下一行:
newPosition.y += Mathf.Clamp(touch.deltaPosition.y * speed, MIN_SPEED, MAX_SPEED) * Time.fixedDeltaTime;
当你乘以 touch.deltaPosition * speed 时,你最有可能限制每帧的总速度,除非你真的不经常点击。
如果你试图让每次触摸都让角色更快,我建议使用刚体,而不是改变它的位置。
最后,您可以通过添加新的Vector3(例如
)来简化代码foreach (Touch touch in Input.touches)
{
transform.position = transform.position + new Vector3(0,Mathf.Clamp(touch.deltaPosition.y * speed, MIN_SPEED, MAX_SPEED) * Time.fixedDeltaTime,0);
}