저울의 동작을 복제하는 두 개의 피스톤을 시뮬레이트하고 싶습니다. 나는 OnCollisionStay가 호출 될 때 스프링 조인트를 사용하고 역 경량을 적용하고 있습니다. 이것은 나의 피스톤과 그들의 강체와 관절입니다. 둘 다 똑같습니다.Rigidbodies는 만지지 만 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");
}
따라서 비디오에 표시된 로그에 따르면 OnCollisionStay()는 OnCollisionExit()이 호출 된 적이 없더라도 호출되는 것을 중지합니다. 이것이 어떻게 가능한지? 난 항상 OnCollisionStay()가 OnCollisionEnter 프레임과 OnCollisionExit 프레임에서 모든 프레임을 호출한다고 생각했습니다.
여기에 무슨 일이 일어나고 있는지 알 수있는 사람이 있습니까?
충돌 감지 모드를 연속으로 변경하면 여전히 발생합니까? – ryeMoss