【发布时间】:2015-03-08 04:07:01
【问题描述】:
我试图弄清楚如何在 Unity 3D 中使用惯性来停止刚体的旋转。这就是我认为应该完成的方式,但是当我运行它时,它使 Unity 崩溃了,我不得不终止该进程。
while(rigidBody.angularVelocity.magnitude != 0) {
rigidBody.AddTorque(-transform.up * REACTION_WHEEL, ForceMode.Impulse);
}
那么我将如何向刚体添加扭矩以使其从任意度/秒变为 0?
【问题讨论】:
-
您确定增加扭矩最终会导致幅度为 0 吗?更有可能它永远不会完全为 0,并且 operator != 每次都会失败。
-
你应该添加一个阻尼力。即,添加与当前旋转速度的负数成比例的扭矩。这将导致它沿着指数曲线减速。另外,就像 Frederik.L 所说的,检查一个非常小的震级而不是 0。
-
“添加与当前旋转速度的负数成正比的扭矩”是什么意思,你能举个例子吗?
标签: unity3d game-physics