使用 Time.timeScale 暂停会导致我的播放器在取消暂停时 'dash',我该如何停止?

Using Time.timeScale to pause causes my player to 'dash' when unpausing, how do I stop this?

我正在使用 Input.GetAxis() 和 AddForce() 移动播放器。

当我使用 Time.timeScale = 1f 取消暂停游戏时,即使未按下移动键,玩家也会以更高的速度向前冲刺(超过我的速度限制)。

我怎样才能阻止这种情况发生?

要限制速度不超过最大限制,您可以使用 'normalized'

void FixedUpdate()
{          
  if(rigidbody.velocity.magnitude > maxSpeed){
       rigidbody.velocity = rigidbody.velocity.normalized * maxSpeed;
   }

}

您也可以使用 Vector3.ClampMagnitude。 看到这个 https://docs.unity3d.com/ScriptReference/Vector3.ClampMagnitude.html 更具体地说,您可以分享脚本的一部分。

听起来好像在游戏暂停时力仍在施加并不断增加。

您可以在设置 Time.timeScale = 0 之前记录施加在播放器上的力的大小,当您设置 Time.timeScale = 1f 时,您可以将力设置为您之前记录的力暂停。