我有一个游戏,我的玩家需要不停地向前移动,有时他会停止在Z = 990移动,如果我让他在编辑器上移动一点点他再次开始移动。
EX:https://youtu.be/A0FB595AdHI
void FixedUpdate () {
if(forwardSpeed < maxSpeed)
{
forwardSpeed += Time.deltaTime * speedIncrementor;
}
rb.velocity = new Vector3(0, rb.velocity.y, forwardSpeed * Time.deltaTime);
if (forwardSpeed > maxSpeed)
{
forwardSpeed = maxSpeed;
}
}
Time.deltaTime不是物理时间步长。
Time.deltatime(最后一帧的持续时间)每帧调用仅应使用一次,例如Update()调用。
Time.fixedDeltaTime只能在FixedUpdate()中使用,因为它是物理循环的采样时间
如果这不能解决问题,你可以简单地使用重新启动地形逻辑的逻辑。这意味着它将从游戏对象开始移动的那一刻开始运行