| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | /**************************************************************************** * 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<Collider, ITriggerEntity> OnTriggerEnterEvent =            new EasyEvent<Collider, ITriggerEntity>();        private void OnTriggerExit(Collider collider)        {            TriggerEntityMono onTriggerEnterEventTrigger = collider.GetComponent<TriggerEntityMono>();            ITriggerEntity triggerEntity = null;            if (onTriggerEnterEventTrigger != null)            {                triggerEntity = onTriggerEnterEventTrigger.triggerEntity;            }            OnTriggerEnterEvent.Trigger(collider, triggerEntity);        }    }    public static class OnTriggerExitEventTriggerExtension    {        // public static IUnRegister OnTriggerEnterEvent<T>(this T self, Action<Collider> onTriggerEnter)        //     where T : Component        // {        //     return self.GetOrAddComponent<OnTriggerEnterEventTrigger>().OnTriggerEnterEvent        //         .Register(onTriggerEnter);        // }        public static IUnRegister OnTriggerExitEvent(this GameObject self, ITriggerEntity triggerEntity,            Action<Collider, ITriggerEntity> onTriggerEnter)        {            OnTriggerExitEventTrigger onTriggerEnterEventTrigger =                self.GetOrAddComponent<OnTriggerExitEventTrigger>();            onTriggerEnterEventTrigger.OnTriggerEnterEvent.Close();            TriggerEntityMono TriggerEntityMono =                self.GetOrAddComponent<TriggerEntityMono>();            TriggerEntityMono.triggerEntity= triggerEntity;            return onTriggerEnterEventTrigger.OnTriggerEnterEvent                .Register(onTriggerEnter);        }    }}
 |