重力を止めてオブジェクトを静止させるのにisKinematicを使っていたのですが、OnTriggerEnterとOnTriggerExitの挙動がおかしくなることに気づきました。isKinematicの代わりにuseGravityの有効/無効を切り替えることで正しい動作になりました。
Rigidbody rb; void Start() { rb = this.transform.GetComponent<Rigidbody>(); } void Update() { //rb.isKinematic = true; //OnTriggerEnterとOnTriggerExitの挙動がおかしくなる rb.velocity = Vector3.zero; //速度を止める rb.useGravity = false; //重力を止める }
動いているオブジェクトの重力を止めただけでは動き続けるので、速度も0にしています。
Unity初心者のメモ書きなので参考程度にしてください。