読者です 読者をやめる 読者になる 読者になる

とあるプログラマの備忘録

都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!

【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を両方にアタッチしなくても物理的な干渉を受けることができる

なにげに不便です。。