| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 | 
							- using Core.Triiger;
 
- using Fort23.UTool;
 
- using UnityEngine;
 
- using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
 
- namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
 
- {
 
-     public class TimeLineAlertLogic : TimeLineEventLogicBasic,ITriggerEntity
 
-     {
 
-         private IUnRegister _enterRegister;
 
-         private IUnRegister _exitRegister;
 
-         protected GameObject _gameObject;
 
-         private GameObjectPool _newGameObjectPool;
 
-         private TimeLineAlertSeriailztion timeLineAlertSeriailztion;
 
-         protected bool isManualClose;
 
-         protected override void ProSetCombatInfo()
 
-         {
 
-         }
 
-         protected override void ProDormancyObj()
 
-         {
 
-         }
 
-         public override bool IsFinish()
 
-         {
 
-             return !isManualClose;
 
-         }
 
-         protected override void ProEnter()
 
-         {
 
-           
 
-             _enterRegister?.UnRegister();
 
-             _exitRegister?.UnRegister();
 
-             _enterRegister = null;
 
-             _exitRegister = null;
 
-             timeLineAlertSeriailztion =
 
-                 mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
 
-             isManualClose = timeLineAlertSeriailztion.manualClose;
 
-             if (!string.IsNullOrEmpty(timeLineAlertSeriailztion.guid))
 
-             {
 
-                 SpecialDotInfo specialDotInfo = castEntity.GetMainHotPoin<ILifetCycleHitPoint>(true)
 
-                     .GetSpecialDotInfo(timeLineAlertSeriailztion.guid);
 
-                 GameObject gameObject = specialDotInfo.targetTran.gameObject;
 
-                 gameObject.SetActive(false);
 
-                 if (timeLineAlertSeriailztion.isNew)
 
-                 {
 
-                     string poolName = castEntity.guidName + timeLineAlertSeriailztion.groupName +
 
-                                       timeLineAlertSeriailztion.guid;
 
-                     _newGameObjectPool =
 
-                         GObjectPool.Instance.FetchAsyncForGameObject<GameObjectPool>(gameObject, poolName);
 
-                     _gameObject = _newGameObjectPool.own;
 
-                     _gameObject.transform.position = gameObject.transform.position;
 
-                 }
 
-                 else
 
-                 {
 
-                     _gameObject = gameObject;
 
-                 }
 
-                 _enterRegister = _gameObject.OnTriggerEnterEvent(this,OnTriggerEnterEvent);
 
-                 _exitRegister = _gameObject.OnTriggerExitEvent(this,OnTriggerExitEvent);
 
-                 ITimeLineAlertTargetEnter timeLineAlertTarget =
 
-                     _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
 
-                 if (timeLineAlertTarget != null)
 
-                 {
 
-                     timeLineAlertTarget.InitAlert(timeLineAlertSeriailztion, _gameObject);
 
-                 }
 
-                 _gameObject.SetActive(true);
 
-             }
 
-         }
 
-         protected void OnTriggerEnterEvent(Collider collider,ITriggerEntity triggerEntity)
 
-         {
 
-             TimeLineAlertSeriailztion timeLineAlertSeriailztion =
 
-                 mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
 
-             ITimeLineAlertTargetEnter timeLineAlertTarget =
 
-                 _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
 
-             if (timeLineAlertTarget != null)
 
-             {
 
-                 ExitEventGameObject exitEventGameObject = collider.gameObject.GetOrAddComponent<ExitEventGameObject>();
 
-                 exitEventGameObject.Collider = collider;
 
-                 exitEventGameObject.iTriggerEntity = triggerEntity;
 
-                 exitEventGameObject.OnCollisionExitEvent = (OnTriggerExitEvent);
 
-                 timeLineAlertTarget.Enter(timeLineAlertSeriailztion, collider, _gameObject);
 
-             }
 
-         }
 
-         protected void OnTriggerExitEvent(Collider collider,ITriggerEntity triggerEntity)
 
-         {
 
-             TimeLineAlertSeriailztion timeLineAlertSeriailztion =
 
-                 mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
 
-             ITimeLineAlertTargetEnter timeLineAlertTarget =
 
-                 _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
 
-             if (timeLineAlertTarget != null)
 
-             {
 
-                 ExitEventGameObject exitEventGameObject = collider.gameObject.GetOrAddComponent<ExitEventGameObject>();
 
-                 if (exitEventGameObject.OnCollisionExitEvent == null)
 
-                 {
 
-                     return;
 
-                 }
 
-                 exitEventGameObject.Collider = null;
 
-                 exitEventGameObject.OnCollisionExitEvent = null;
 
-                 timeLineAlertTarget.Leave(timeLineAlertSeriailztion, collider, _gameObject);
 
-             }
 
-         }
 
-         protected override void ProLeave()
 
-         {
 
-             TimeLineAlertSeriailztion timeLineAlertSeriailztion =
 
-                 mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
 
-             if (timeLineAlertSeriailztion.manualClose)
 
-             {
 
-                 return;
 
-             }
 
-             ClearTrigger();
 
-         }
 
-         protected override void ProTimeUpdate()
 
-         {
 
-             // if (_gameObject != null)
 
-             // {
 
-             //     if (timeLineAlertSeriailztion.isFixedPoint)
 
-             //     {
 
-             //         
 
-             //     }
 
-             // }
 
-         }
 
-         protected override void ProBreakTimeLine()
 
-         {
 
-             isManualClose = false;
 
-             ClearTrigger();
 
-         }
 
-         protected void ClearTrigger()
 
-         {
 
-             if (_gameObject != null)
 
-             {
 
-                 _gameObject.SetActive(false);
 
-                 ITimeLineAlertTargetEnter timeLineAlertTarget =
 
-                     _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
 
-                 if (timeLineAlertTarget != null)
 
-                 {
 
-                     timeLineAlertTarget.LeaveAlert(timeLineAlertSeriailztion, _gameObject);
 
-                 }
 
-             }
 
-             GObjectPool.Instance.Recycle(_newGameObjectPool);
 
-             _enterRegister?.UnRegister();
 
-             _exitRegister?.UnRegister();
 
-             _enterRegister = null;
 
-             _exitRegister = null;
 
-             _newGameObjectPool = null;
 
-             _gameObject = null;
 
-         }
 
-         protected override void ProDispose()
 
-         {
 
-             ClearTrigger();
 
-         }
 
-         public string tag { get; }
 
-     }
 
- }
 
 
  |