コード例 #1
0
    void OnTriggerEnter(Collider other)
    {
        if (!_collisions.ContainsKey(other.GetInstanceID()))
        {
            _collisions.Add(other.GetInstanceID(), other);
        }

        if (enabled && OnTriggerEntered != null)
        {
            DisableColliderComponent disableColliderComponent = other.GetComponent <DisableColliderComponent>();
            if (disableColliderComponent)
            {
                disableColliderComponent.ColliderDisabled += disableColliderComponent_ColliderDisabled;
            }
            OnTriggerEntered(this, other);
        }

        if (enabled && IsInTriggerSet)
        {
            TriggerSetEnter[_triggerSet].Dispatch(this, other);
        }
    }
コード例 #2
0
    void sender_ColliderEnabled(DisableColliderComponent sender, Collider other)
    {
        Rigidbody rigidbody = other.attachedRigidbody ?? this.GetComponent <Rigidbody>();

        rigidbody.WakeUp();
    }
コード例 #3
0
 void disableColliderComponent_ColliderDisabled(DisableColliderComponent sender, Collider collider)
 {
     sender.ColliderDisabled -= disableColliderComponent_ColliderDisabled;
     sender.ColliderEnabled  += sender_ColliderEnabled;
     OnTriggerExit(collider);
 }