/**************************************************************************** * Copyright (c) 2016 - 2022 liangxiegame UNDER MIT License * * https://qframework.cn * https://github.com/liangxiegame/QFramework * https://gitee.com/liangxiegame/QFramework ****************************************************************************/ using System; using UnityEngine; namespace Core.Triiger { public class OnTriggerExitEventTrigger : MonoBehaviour { public readonly EasyEvent OnTriggerEnterEvent = new EasyEvent(); private void OnTriggerExit(Collider collider) { TriggerEntityMono onTriggerEnterEventTrigger = collider.GetComponent(); ITriggerEntity triggerEntity = null; if (onTriggerEnterEventTrigger != null) { triggerEntity = onTriggerEnterEventTrigger.triggerEntity; } OnTriggerEnterEvent.Trigger(collider, triggerEntity); } } public static class OnTriggerExitEventTriggerExtension { // public static IUnRegister OnTriggerEnterEvent(this T self, Action onTriggerEnter) // where T : Component // { // return self.GetOrAddComponent().OnTriggerEnterEvent // .Register(onTriggerEnter); // } public static IUnRegister OnTriggerExitEvent(this GameObject self, ITriggerEntity triggerEntity, Action onTriggerEnter) { OnTriggerExitEventTrigger onTriggerEnterEventTrigger = self.GetOrAddComponent(); onTriggerEnterEventTrigger.OnTriggerEnterEvent.Close(); TriggerEntityMono TriggerEntityMono = self.GetOrAddComponent(); TriggerEntityMono.triggerEntity= triggerEntity; return onTriggerEnterEventTrigger.OnTriggerEnterEvent .Register(onTriggerEnter); } } }