原文
OnEnterTrigger/OnEnterCollider、 OnExitTrigger/OnExitColliderはそれぞれ使い勝手が非常に似ています。
OnTriggerEnter/OnColliderEnterはどちらとも、互いのコライダーがインタラクトしたときにVRC_Triggerを有効にします。
OnTriggerExit/OnColliderExitはどちらとも、互いのコライダーのインタラクトが止まったときにVRC_Triggerを有効にします。
OnTriggerは、互いに衝突判定を持ってはいないが、Colliderとしては有効な1つ、或いは両方のコライダーがそれぞれの空間に入った際に、それをトリガーにしてその空間に出入りしていることを検出することができます。
OnColliderは、互いのコライダーの"Trigger"をオフにすることで衝突判定をもたせ、互いにめり込まなくなります。
つまり、OnColliderは空間に入ったときではなく、互いにぶつかり合ってる際にトリガーが発動します。
そしてぶつかることを辞めたときにトリガーは止まります。
なので通常は、"Trigger"をオンにしている間にインタラクトを検出したいコライダーのいずれかがOnTriggerを使用している場合は、OnColliderを使用します。
これは特定の状況では少し複雑ではありますが、上に書いて有ることは99%の人々にとっては真実であり、ここにCollider(Collision)が何時発生し、いつトリガーが発生するかについての素晴らしいドキュメントがあります。
VRC_Triggerは、インタラクトを検出したいColliderと同じゲームオブジェクト上にアタッチされている必要があります。
OnColliderはPlayerレイヤーでは動きません。これを回避するには、OnAvatarHitのトリガータイプを代わりに使います。これは、アバターがコライダーと衝突した際にトリガーされます。
パラメーター | 説明 |
Trigger Individuals | トリガーを、新しいオブジェクトがコライダーに衝突する度に発動する場合は選択して下さい。もし、コライダー内にトリガーオブジェクトがない場合や衝突しない場合にのみトリガーを発動させたい場合は、選択しないで下さい。 |
Layers | VRC_Triggerがオンになっているコライダーとインタラクトしたときにトリガーをアクティブにするレイヤー |