如何在Unity中使用RigidBody.SleepVelocity切换到RigidBody.SleepThreshold

时间:2015-07-31 15:00:47

标签: unity3d rigid-bodies

因此,我正在使用Unity 4.x编写的旧项目,并且必须使其在5.x中工作,并进行一些物理更改。

现在不再支持根据api文档对RigidBody.SleepVelocity进行多次调用。

替换是RigidBody.SleepThreshold。

我理解两者之间的差异,但我不知道如何使用旧系统转换为新系统。

如何将SleepVelocity转换为Threshold?

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

1 个答案:

答案 0 :(得分:0)

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

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

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

只需找到合适的E值,然后将其用于Rigidbody.sleepThreshold