public void OnTriggerExit(Collider other) { if (!IsTypeAllowed(other)) { return; } CustomDispatcher component = other.gameObject.GetComponent <CustomDispatcher>(); if (!(component != null) || component.Dispatcher != Dispatcher) { return; } Prop componentInChildren = other.gameObject.GetComponentInChildren <Prop>(); if (componentInChildren != null) { InteractiveZonePropEventHandler component2 = componentInChildren.GetComponent <InteractiveZonePropEventHandler>(); if (component2 != null) { component2.UnEquipProp(); } } Dispatcher.DispatchEvent(new InteractionZoneEvents.InteractionZoneEvent(ZoneId, other, base.gameObject, ZoneInteractionStateChange.ExitZone)); UnityEngine.Object.Destroy(component); CollidersInZone.Remove(other); }