/**************************************************************************** * 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 readonly EasyEvent OnTriggerEnterEvent = new EasyEvent(); private void OnTriggerEnter(Collider collider) { TriggerEntityMono 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.OnTriggerEnterEvent.Close(); TriggerEntityMono TriggerEntityMono = self.GetOrAddComponent(); TriggerEntityMono.triggerEntity= triggerEntity; return onTriggerEnterEventTrigger.OnTriggerEnterEvent .Register(onTriggerEnter); } } }