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