OnTrigger系関数の利用に関わるCollider Component内のIsTrigger
結論:『OnTrigger系関数を利用するときは、少なくとも片方の衝突ObjectのColliderのIsTriggerがTureであれば良い』
Unityでシューティングゲームを作っているときに、
- 操作機の弾と敵機が衝突したら爆発
- 敵機の弾と操作機が衝突したら爆発
- 操作機と敵機が衝突したら爆発
- 弾同士が接触しても物理的挙動が起こらない
という制御をしたいと思った。
で、今回は上記制御するにあたり、物理的挙動は全て不要だったので、結論的には、
- 操作機のIsTriggerをTrue
- 敵機のIsTriggerをTrue
- 弾のIsTriggerをTrue
でOKであった。
Collider ComponentにあるIs Triggerは何かと言うと、
そのObjectがOnTrigger系関数を稼働させるトリガーになるかどうかというもの。
True: トリガーになる
False: トリガーにならない
そして、OnTriggerを発生させるための必要条件は他にも2つあり、 Rigidbody(2d) Componentを少なくとも片方の衝突Objectが有している必要がある。 RigidBodyというのは、物理的挙動を制御するComponent。
もう一つの必要条件は、 Collider Componentを両方の衝突Objectが有している必要があるということである。
OnTrigger系関数の利用条件をまとめると、
- 少なくとも片方のObjectのIsTriggerをTrueにする
- 少なくとも片方のObjectにRigidbody(2d) Componentをアタッチ
- 両方のObjectにCollider Componentをアタッチ
となる。