123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- using Core.Triiger;
- using UnityEngine;
- using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
- namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
- {
- public class TimeLineAlertLogic : TimeLineEventLogicBasic
- {
- private IUnRegister _enterRegister;
- private IUnRegister _exitRegister;
- protected GameObject _gameObject;
- protected override void ProSetCombatInfo()
- {
- }
- protected override void ProEnter()
- {
- _enterRegister?.UnRegister();
- _exitRegister?.UnRegister();
- _enterRegister = null;
- _exitRegister = null;
- TimeLineAlertSeriailztion timeLineAlertSeriailztion =
- mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
- if (!string.IsNullOrEmpty(timeLineAlertSeriailztion.guid))
- {
- SpecialDotInfo specialDotInfo = castEntity.GetMainHotPoin<ILifetCycleHitPoint>(true)
- .GetSpecialDotInfo(timeLineAlertSeriailztion.guid);
- _gameObject = specialDotInfo.targetTran.gameObject;
- _gameObject.SetActive(false);
- _enterRegister = specialDotInfo.targetTran.gameObject.OnTriggerEnterEvent(OnTriggerEnterEvent);
- _exitRegister = specialDotInfo.targetTran.gameObject.OnTriggerExitEvent(OnTriggerExitEvent);
- ITimeLineAlertTargetEnter timeLineAlertTarget =
- _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
- if (timeLineAlertTarget != null)
- {
- timeLineAlertTarget.InitAlert(timeLineAlertSeriailztion,specialDotInfo.targetTran.gameObject);
- }
- specialDotInfo.targetTran.gameObject.SetActive(true);
- }
- }
- protected void OnTriggerEnterEvent(Collider collider)
- {
- TimeLineAlertSeriailztion timeLineAlertSeriailztion =
- mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
- ITimeLineAlertTargetEnter timeLineAlertTarget =
- _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
- if (timeLineAlertTarget != null)
- {
- ExitEventGameObject exitEventGameObject= collider.gameObject.GetOrAddComponent<ExitEventGameObject>();
- exitEventGameObject.Collider = collider;
- exitEventGameObject.OnCollisionExitEvent=(OnTriggerExitEvent);
- timeLineAlertTarget.Enter(timeLineAlertSeriailztion, collider,_gameObject);
- }
- }
- protected void OnTriggerExitEvent(Collider collider)
- {
- 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;
- }
- if (!string.IsNullOrEmpty(timeLineAlertSeriailztion.guid))
- {
- SpecialDotInfo specialDotInfo = castEntity.GetMainHotPoin<ILifetCycleHitPoint>(true)
- .GetSpecialDotInfo(timeLineAlertSeriailztion.guid);
- specialDotInfo.targetTran.gameObject.SetActive(false);
- ITimeLineAlertTargetEnter timeLineAlertTarget =
- _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
- if (timeLineAlertTarget != null)
- {
- timeLineAlertTarget.LeaveAlert(timeLineAlertSeriailztion,specialDotInfo.targetTran.gameObject);
- }
- }
- _enterRegister?.UnRegister();
- _exitRegister?.UnRegister();
- _enterRegister = null;
- _exitRegister = null;
- }
- protected override void ProTimeUpdate()
- {
- }
- protected override void ProBreakTimeLine()
- {
- TimeLineAlertSeriailztion timeLineAlertSeriailztion =
- mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
- if (!string.IsNullOrEmpty(timeLineAlertSeriailztion.guid))
- {
- SpecialDotInfo specialDotInfo = castEntity.GetMainHotPoin<ILifetCycleHitPoint>(true)
- .GetSpecialDotInfo(timeLineAlertSeriailztion.guid);
- specialDotInfo.targetTran.gameObject.SetActive(false);
- ITimeLineAlertTargetEnter timeLineAlertTarget =
- _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
- if (timeLineAlertTarget != null)
- {
- timeLineAlertTarget.LeaveAlert(timeLineAlertSeriailztion,specialDotInfo.targetTran.gameObject);
- }
- }
- _enterRegister?.UnRegister();
- _exitRegister?.UnRegister();
- _enterRegister = null;
- _exitRegister = null;
- }
- protected override void ProDispose()
- {
- _enterRegister?.UnRegister();
- _exitRegister?.UnRegister();
- _enterRegister = null;
- _exitRegister = null;
- }
- }
- }
|