0

所以我正在处理一个用 Unity 4.x 编写的旧项目,并且必须通过一些物理变化使其在 5.x 中工作。

有几个对 RigidBody.SleepVelocity 的调用,根据 api 文档,现在不再支持。

替代品是 RigidBody.SleepThreshold。

我有点理解两者之间的区别,但我不知道如何从使用旧系统转换为使用新系统。

我如何从使用 SleepVelocity 转换为 Threshold?

(顺便说一句,我在 JS 中工作,但我可以阅读等效的 C#)

4

1 回答 1

0

根据文献Rigidbody.sleepVelocity,代表速度,Rigidbody.sleepThreshold代表能量。因此,如果理解正确,您所要做的就是找到一些乘数将其与旧速度值相乘,因此结果能量值将导致相同的行为。

要计算物体的能量,您可以使用:

 float E = rigidbody.mass * rigidbody.velocity.sqrMagnitude * 0.5f;

只需找到合适E的价值并将其用于您的Rigidbody.sleepThreshold

于 2015-07-31T15:29:46.003 回答