Unityには二種類の衝突イベントがあります。
- OnCollision (衝突対象とすりぬけない
- OnTrigger (衝突対象がすりぬける
どちらも衝突発生と衝突中、衝突終了の3種類のイベントを拾えます。
二つの衝突イベントの違い
OnCollision衝突イベントには衝突オブジェクトのどちらかにリジットボディが必要。
コライダーには実体があり、他のオブジェクトにぶつかります。
void OnCollisionEnter(Collision other) {
OnTrigger衝突イベントは動きのあるコライダー単位で発生する。※位置をワープさせてぶつけても衝突にならない。
コライダーには実体がなく、他のオブジェクトにはぶつからない。当たり判定のみ存在する。
void OnTriggerEnter(Collider other) {
注意点
二つのイベントはリジットボディ単位かコライダー単位かで発生数が変わってしまう。
当たり判定をワープさせると反応しない場合があること。