OnTriggerEnterEventTrigger.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /****************************************************************************
  2. * Copyright (c) 2016 - 2022 liangxiegame UNDER MIT License
  3. *
  4. * https://qframework.cn
  5. * https://github.com/liangxiegame/QFramework
  6. * https://gitee.com/liangxiegame/QFramework
  7. ****************************************************************************/
  8. using System;
  9. using UnityEngine;
  10. namespace Core.Triiger
  11. {
  12. public class OnTriggerEnterEventTrigger : MonoBehaviour
  13. {
  14. public ITriggerEntity triggerEntity;
  15. public readonly EasyEvent<Collider,ITriggerEntity> OnTriggerEnterEvent = new EasyEvent<Collider,ITriggerEntity>();
  16. private void OnTriggerEnter(Collider collider)
  17. {
  18. OnTriggerEnterEvent.Trigger(collider,triggerEntity);
  19. }
  20. }
  21. public static class OnTriggerEnterEventTriggerExtension
  22. {
  23. // public static IUnRegister OnTriggerEnterEvent<T>(this T self, Action<Collider> onTriggerEnter)
  24. // where T : Component
  25. // {
  26. // return self.GetOrAddComponent<OnTriggerEnterEventTrigger>().OnTriggerEnterEvent
  27. // .Register(onTriggerEnter);
  28. // }
  29. public static IUnRegister OnTriggerEnterEvent(this GameObject self,ITriggerEntity triggerEntity, Action<Collider,ITriggerEntity> onTriggerEnter)
  30. {
  31. OnTriggerEnterEventTrigger onTriggerEnterEventTrigger= self.GetOrAddComponent<OnTriggerEnterEventTrigger>();
  32. onTriggerEnterEventTrigger.triggerEntity = triggerEntity;
  33. onTriggerEnterEventTrigger.OnTriggerEnterEvent.Close();
  34. return onTriggerEnterEventTrigger.OnTriggerEnterEvent
  35. .Register(onTriggerEnter);
  36. }
  37. }
  38. }