因此,我正在使用Unity 4.x编写的旧项目,并且必须使其在5.x中工作,并进行一些物理更改。
现在不再支持根据api文档对RigidBody.SleepVelocity进行多次调用。
替换是RigidBody.SleepThreshold。
我理解两者之间的差异,但我不知道如何使用旧系统转换为新系统。
如何将SleepVelocity转换为Threshold?
(顺便说一下,我在JS工作,但我可以读取等效的C#)
答案 0 :(得分:0)
根据文件Rigidbody.sleepVelocity
代表速度,Rigidbody.sleepThreshold
代表能量。因此,如果理解正确,您所要做的就是找到一些乘数来乘以旧的速度值,因此结果能量值将导致相同的行为。
要计算物体的能量,你可以使用它:
float E = rigidbody.mass * rigidbody.velocity.sqrMagnitude * 0.5f;
只需找到合适的E
值,然后将其用于Rigidbody.sleepThreshold