睡眠运动学刚体不调用 OnCollisionStay
Sleeping kinematic rigidbody not calling OnCollisionStay
我有一个交互系统,它依赖于在重叠期间调用的 OnCollisionStay 事件。
物理系统强制刚体休眠,以下无效:
- 呼叫
rigidbody.WakeUp()
- 设置
rigidbody.sleepThreshold = 0;
- 呼叫
rigidbody.AddForce(Vector3.zero);
运动学刚体似乎比非运动学刚体更热衷于保持睡眠状态。调用以下命令将确保您的运动刚体不会进入睡眠状态。
void FixedUpdate()
{
rigidbody.MovePosition(rigidbody.position);
}
请记住,这是在规避内置优化,因此仅在必要时使用。
我有一个交互系统,它依赖于在重叠期间调用的 OnCollisionStay 事件。
物理系统强制刚体休眠,以下无效:
- 呼叫
rigidbody.WakeUp()
- 设置
rigidbody.sleepThreshold = 0;
- 呼叫
rigidbody.AddForce(Vector3.zero);
运动学刚体似乎比非运动学刚体更热衷于保持睡眠状态。调用以下命令将确保您的运动刚体不会进入睡眠状态。
void FixedUpdate()
{
rigidbody.MovePosition(rigidbody.position);
}
请记住,这是在规避内置优化,因此仅在必要时使用。