【Unity】2Dと3Dの当たり判定の検出方法まとめ。関数名はOnTriggerStay()とか。

2022年2月16日

どうも、だらはです。
今回は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)
{
}

のように使われます。
また忘れたらこの記事を思い出して頂けると幸いです:)
以上、だらはでした。

スポンサーリンク

基礎

Posted by daraha_gm