【Unity】2Dと3Dの当たり判定の検出方法まとめ。関数名はOnTriggerStay()とか。
どうも、だらはです。
今回は2Dと3Dの当たり判定の検出方法について紹介します。
具体的には、侵入を検知するものと衝突を検知するものの計2種類の関数についてです。
侵入を検知する関数
侵入を検知する関数は以下の通りです。
説明 | 3D | 2D |
---|---|---|
物体が侵入したときに1度だけ呼ばれる関数 | OnTriggerEnter | OnTriggerEnter2D |
物体が侵入しているときに呼ばれ続ける関数 | OnTriggerStay | OnTriggerStay2D |
物体が脱出したときに1度だけ呼ばれる関数 | OnTriggerExit | OnTriggerExit2D |
関数名の違いは語尾に2Dが入っているか否かのみです。
◆使用条件
- 2つの物体のどちらかにRigidbodyがアタッチされていること(2DならRigidbody2D)
- 2つの物体にアタッチされたColliderのうちどちらかが「Is Trigger」にチェックが入っていること。(2Dなら各種Collider2D)
衝突を検知する関数
衝突を検知する関数は以下の通りです。
説明 | 3D | 2D |
---|---|---|
物体が衝突したときに1度だけ呼ばれる関数 | OnCollisionEnter | OnCollisionEnter2D |
物体が衝突しているときに呼ばれ続ける関数 | OnCollisionStay | OnCollisionStay2D |
物体が離れたときに1度だけ呼ばれる関数 | OnCollisionExit | OnCollisionExit2D |
関数名の違いは語尾に2Dが入っているか否かのみです。
◆使用条件
- 2つの物体にアタッチされたCollider両方とも「Is Trigger」のチェックが外れていること(2Dなら各種Collider2D)
- 2つの物体にアタッチされたRigidbodyのうちどちらかが「is Kinematic」のチェックが外れていること(2DならRigidbody2D)
最後に
いかがでしたでしょうか。
今回は当たり判定について2Dと3Dの関数の近いを紹介しました。
今回紹介した関数は
void OnTriggerStay(Collider other)
{
}
のように使われます。
また忘れたらこの記事を思い出して頂けると幸いです:)
以上、だらはでした。
ディスカッション
コメント一覧
まだ、コメントがありません