Unity Tipsです。
コードはC#となります。
Rigidbodyが設定されている3Dオブジェクトの
当たり判定を取得する方法です。
// 衝突した瞬間を検出 void OnCollisionEnter(Collision other) { // 処理を書く } // 衝突したオブジェクトが離れる瞬間を検出 void OnCollisionExit(Collision other) { // 処理を書く } // 衝突中を検出 void OnCollisionStay(Collision other) { // 処理を書く }
isTrigerを設定している場合は下記で取得。
※isTrigerがtrueだと衝突の検出のみになります
// 衝突した瞬間を検出 void OnTriggerEnter(Collider other) { // 処理を書く } // 衝突したオブジェクトが離れる瞬間を検出 void OnTriggerExit(Collider other) { // 処理を書く } // 衝突中を検出 void OnTriggerStay(Collider other) { // 処理を書く }
2017/05/07 引数誤りを修正 phinさんご指摘ありがとうございますm(_ _)m
2017/07/01 Colliderが設定されているオブジェクトにはRigidbody必須
衝突したオブジェクト情報は
引数のCollisionに格納されています。
// 衝突した瞬間を検出 void OnCollisionEnter(Collision other) { // 対象のクラスが取得可能かチェック(もっといい方法あるかも) [Class] c = other.rigidbody.GetComponent<[Class]>(); if(c != null) { // 処理を書く } }
何か間違い等がありましたらコメント等で
ご指摘頂けるとありがたいです。
失礼します
OnTrigger関係のメソッドの引数の型はColliderではないでしょうか?
こちらをご覧下さい
https://docs.unity3d.com/jp/540/ScriptReference/Collider.OnTriggerEnter.html
ご指摘ありがとうございます。
記載が間違っておりましたm(_ _ )m