using NaughtyAttributes; using UnityEngine; namespace GameplayIngredients.Events { #if !MODULE_PHYSICS2D [WarnDisabledModule("Physics 2D")] #endif [AddComponentMenu(ComponentMenu.eventsPath + "On Trigger 2D Event")] [AdvancedHierarchyIcon("Packages/net.peeweek.gameplay-ingredients/Icons/Events/ic-event-trigger.png")] #if MODULE_PHYSICS2D [RequireComponent(typeof(Collider2D))] #endif public class OnTrigger2DEvent : EventBase { public Callable[] onTriggerEnter; public Callable[] onTriggerExit; public bool OnlyInteractWithTag = true; [EnableIf("OnlyInteractWithTag")] public string Tag = "Player"; #if MODULE_PHYSICS2D private void OnTriggerEnter2D(Collider2D other) { if (OnlyInteractWithTag && other.tag == Tag ) { Callable.Call(onTriggerEnter, other.gameObject); } if (!OnlyInteractWithTag) { Callable.Call(onTriggerEnter, other.gameObject); } } private void OnTriggerExit2D(Collider2D other) { if (OnlyInteractWithTag && other.tag == Tag ) { Callable.Call(onTriggerExit, other.gameObject); } if (!OnlyInteractWithTag) { Callable.Call(onTriggerExit, other.gameObject); } } #endif } }