OnExitCollider

Last-modified: 2018-01-25 (木) 02:17:24

原文
OnEnterTrigger/OnEnterColliderOnExitTrigger/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トリガーを、新しいオブジェクトがコライダーに衝突する度に発動する場合は選択して下さい。もし、コライダー内にトリガーオブジェクトがない場合や衝突しない場合にのみトリガーを発動させたい場合は、選択しないで下さい。
LayersVRC_Triggerがオンになっているコライダーとインタラクトしたときにトリガーをアクティブにするレイヤー