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