天びんの動作を再現する2つのピストンをシミュレートします。私は、OnCollisionStayが呼び出されたときに、スプリングジョイントと逆ウェイトを適用することでこれを行います。これは私のピストンと硬骨と関節です。両方とも全く同じです。OnCollisionStayに触れるリジッドボディが呼び出されなくなりました(Unity3D)
これは私のSpringForceTransmisor.csコードです: UnityEngineを使用して、
public Rigidbody InverseJoint;
private void OnCollisionEnter(Collision collision) {
Debug.Log("Enter");
}
private void OnCollisionExit(Collision collision) {
Debug.Log("Exit");
}
private void OnCollisionStay(Collision collision) {
InverseJoint.AddForce(-(collision.rigidbody.mass * Physics.gravity));
Debug.Log("Stay");
}
そしてthis is a video何が起こっているのか。
したがって、OnCollisionStay()はOnCollisionExit()が一度も呼び出されていなくても呼び出しを停止します。これはどのように可能ですか?私はいつもOnCollisionStay()がOnCollisionEnterフレームとOnCollisionExitフレームからのすべてのフレームと呼ばれると考えました。
ここで何が起こっているのか誰かが分かりますか?
これは、衝突検出モードを[連続]に変更した場合でも発生しますか? – ryeMoss