TimeLineAlertLogic.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. using Core.Triiger;
  2. using UnityEngine;
  3. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  4. namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
  5. {
  6. public class TimeLineAlertLogic : TimeLineEventLogicBasic
  7. {
  8. private IUnRegister _enterRegister;
  9. private IUnRegister _exitRegister;
  10. protected GameObject _gameObject;
  11. protected override void ProSetCombatInfo()
  12. {
  13. }
  14. protected override void ProEnter()
  15. {
  16. TimeLineAlertSeriailztion timeLineAlertSeriailztion =
  17. mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
  18. if (!string.IsNullOrEmpty(timeLineAlertSeriailztion.guid))
  19. {
  20. SpecialDotInfo specialDotInfo = castEntity.GetMainHotPoin<ILifetCycleHitPoint>(true)
  21. .GetSpecialDotInfo(timeLineAlertSeriailztion.guid);
  22. _gameObject = specialDotInfo.targetTran.gameObject;
  23. _gameObject.SetActive(false);
  24. _enterRegister = specialDotInfo.targetTran.gameObject.OnTriggerEnterEvent(OnTriggerEnterEvent);
  25. _exitRegister = specialDotInfo.targetTran.gameObject.OnTriggerExitEvent(OnTriggerExitEvent);
  26. ITimeLineAlertTargetEnter timeLineAlertTarget =
  27. _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
  28. if (timeLineAlertTarget != null)
  29. {
  30. timeLineAlertTarget.InitAlert(timeLineAlertSeriailztion,specialDotInfo.targetTran.gameObject);
  31. }
  32. specialDotInfo.targetTran.gameObject.SetActive(true);
  33. }
  34. }
  35. protected void OnTriggerEnterEvent(Collider collider)
  36. {
  37. TimeLineAlertSeriailztion timeLineAlertSeriailztion =
  38. mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
  39. ITimeLineAlertTargetEnter timeLineAlertTarget =
  40. _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
  41. if (timeLineAlertTarget != null)
  42. {
  43. timeLineAlertTarget.Enter(timeLineAlertSeriailztion, collider,_gameObject);
  44. }
  45. }
  46. protected void OnTriggerExitEvent(Collider collider)
  47. {
  48. TimeLineAlertSeriailztion timeLineAlertSeriailztion =
  49. mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
  50. ITimeLineAlertTargetEnter timeLineAlertTarget =
  51. _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
  52. if (timeLineAlertTarget != null)
  53. {
  54. timeLineAlertTarget.Leave(timeLineAlertSeriailztion, collider,_gameObject);
  55. }
  56. }
  57. protected override void ProLeave()
  58. {
  59. TimeLineAlertSeriailztion timeLineAlertSeriailztion =
  60. mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
  61. if (!string.IsNullOrEmpty(timeLineAlertSeriailztion.guid))
  62. {
  63. SpecialDotInfo specialDotInfo = castEntity.GetMainHotPoin<ILifetCycleHitPoint>(true)
  64. .GetSpecialDotInfo(timeLineAlertSeriailztion.guid);
  65. specialDotInfo.targetTran.gameObject.SetActive(false);
  66. ITimeLineAlertTargetEnter timeLineAlertTarget =
  67. _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
  68. if (timeLineAlertTarget != null)
  69. {
  70. timeLineAlertTarget.LeaveAlert(timeLineAlertSeriailztion,specialDotInfo.targetTran.gameObject);
  71. }
  72. }
  73. _enterRegister?.UnRegister();
  74. _exitRegister?.UnRegister();
  75. _enterRegister = null;
  76. _exitRegister = null;
  77. }
  78. protected override void ProTimeUpdate()
  79. {
  80. }
  81. protected override void ProBreakTimeLine()
  82. {
  83. TimeLineAlertSeriailztion timeLineAlertSeriailztion =
  84. mTimeLineAssetSerialization as TimeLineAlertSeriailztion;
  85. if (!string.IsNullOrEmpty(timeLineAlertSeriailztion.guid))
  86. {
  87. SpecialDotInfo specialDotInfo = castEntity.GetMainHotPoin<ILifetCycleHitPoint>(true)
  88. .GetSpecialDotInfo(timeLineAlertSeriailztion.guid);
  89. specialDotInfo.targetTran.gameObject.SetActive(false);
  90. ITimeLineAlertTargetEnter timeLineAlertTarget =
  91. _timeLineTriggerEntity as ITimeLineAlertTargetEnter;
  92. if (timeLineAlertTarget != null)
  93. {
  94. timeLineAlertTarget.LeaveAlert(timeLineAlertSeriailztion,specialDotInfo.targetTran.gameObject);
  95. }
  96. }
  97. _enterRegister?.UnRegister();
  98. _exitRegister?.UnRegister();
  99. _enterRegister = null;
  100. _exitRegister = null;
  101. }
  102. protected override void ProDispose()
  103. {
  104. }
  105. }
  106. }