OnTriggerEnterEventTrigger.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. OnTriggerEnterEventTrigger onTriggerEnterEventTrigger= collider.GetComponent<OnTriggerEnterEventTrigger>();
  19. ITriggerEntity triggerEntity = null;
  20. if(onTriggerEnterEventTrigger!=null)
  21. {
  22. triggerEntity= onTriggerEnterEventTrigger.triggerEntity;
  23. }
  24. OnTriggerEnterEvent.Trigger(collider,triggerEntity);
  25. }
  26. }
  27. public static class OnTriggerEnterEventTriggerExtension
  28. {
  29. // public static IUnRegister OnTriggerEnterEvent<T>(this T self, Action<Collider> onTriggerEnter)
  30. // where T : Component
  31. // {
  32. // return self.GetOrAddComponent<OnTriggerEnterEventTrigger>().OnTriggerEnterEvent
  33. // .Register(onTriggerEnter);
  34. // }
  35. public static IUnRegister OnTriggerEnterEvent(this GameObject self,ITriggerEntity triggerEntity, Action<Collider,ITriggerEntity> onTriggerEnter)
  36. {
  37. OnTriggerEnterEventTrigger onTriggerEnterEventTrigger= self.GetOrAddComponent<OnTriggerEnterEventTrigger>();
  38. onTriggerEnterEventTrigger.triggerEntity = triggerEntity;
  39. onTriggerEnterEventTrigger.OnTriggerEnterEvent.Close();
  40. return onTriggerEnterEventTrigger.OnTriggerEnterEvent
  41. .Register(onTriggerEnter);
  42. }
  43. }
  44. }