【Unity2D入門 番外編】2つのオブジェクトの物理判定とハンドラ呼び出し条件のマトリクス
A:rigidbody : Aオブジェクトのrigidbody2D
A:isTrigger:AオブジェクトのCollider.isTriggerチェックボックス
B:rigidbody : Bオブジェクトのrigidbody2D
B:isTrigger:BオブジェクトのCollider.isTriggerチェックボックス
レイヤー:Edit > Project Settings > Physics 2D
物理干渉:オブジェクト同士がぶつかるか
OnTriggerEnter2D:オブジェクトにアタッチしたスクリプトで呼び出すハンドラ
OnCollisionEnter2D:オブジェクトにアタッチしたスクリプトで呼び出すハンドラ
A:rigidbody | A:isTrigger | B:rigidbody | B:isTrigger | レイヤー | 物理干渉 | OnTriggerEnter2D | OnCollisionEnter2D |
---|---|---|---|---|---|---|---|
○ | ○ | ○ | ○ | ○ | × | ○ | × |
○ | ○ | ○ | ○ | × | × | × | × |
○ | ○ | ○ | × | ○ | × | ○ | × |
○ | ○ | ○ | × | × | × | × | × |
○ | ○ | × | ○ | ○ | × | ○ | × |
○ | ○ | × | ○ | × | × | × | × |
○ | × | × | × | ○ | ○ | × | ○ |
○ | × | × | × | × | × | × | × |
○ | × | × | ○ | ○ | × | ○ | × |
○ | × | × | ○ | × | × | × | × |
このマトリクスから読み取れるのが、
1.レイヤーのチェックを外すと完全に干渉しなくなる
2.isTriggerがオブジェクトA,オブジェクトBどちらかがONになっていれば物理干渉しなくなる
3.物理干渉があるときだけOnCollisionEnter2Dハンドラが呼び出される
4.よって、OnTriggerEnter2DとOnCollisionEnter2Dを同時に動作させる事はできない??
5.rigidbodyを両方にアタッチしなくても物理的な干渉を受けることができる
なにげに不便です。。