物体以最高速度运动时如何保持速度恒定

How to keep velocity constant when object travels at peak speed

出于学习目的,我正在使用 Unity 2D 开发一个项目。这是乒乓球比赛。我有它的 material 所以它每次弹跳时都跑得更快。它 material 的唯一问题是它的速度失控并出现故障。我想找到一种方法来阻止它。

例如,我想知道当球达到峰值速度时如何保持恒定速度,例如15f。这是一个Rigidbody2d对撞球。

如本 post 中所建议,您可以控制 你的刚体在你的 OnFixedUpdate() 中使用 Vector2.ClampMagnitude 方法跟踪它。 为了方便起见,我在 post 中提供了代码。我编辑了我从引用的 post 中提供的代码以匹配 API:

中最近的更改
float maxVelocity = 10;
 void FixedUpdate()
 {
 rigidbody2D.velocity = Vector2.ClampMagnitude(rigidbody2D.velocity, 
  maxVelocity);
 }