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