CombatHeroRollingState.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using System;
  2. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
  3. using CombatLibrary.CombatLibrary.CombatCore.Utility;
  4. using Fort23.UTool;
  5. using Unity.AI.Navigation;
  6. using UnityEngine;
  7. using UnityEngine.AI;
  8. namespace GameLogic.Combat.Hero.State
  9. {
  10. public class CombatHeroRollingState : CombatHeroStateBasic
  11. {
  12. protected float speed = 3;
  13. protected float dis = 2;
  14. private float _currTime;
  15. private Vector3 targetPos;
  16. private Vector3 startPos;
  17. protected ACurve ACurve;
  18. public CombatHeroRollingState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)
  19. {
  20. }
  21. protected override void ProEnter()
  22. {
  23. combatHeroEntity.combatHeroAnimtion.Play("idle");
  24. TimeLineEventLogicGroupBasic timeLineEventLogicGroup =
  25. combatHeroEntity.combatHeroTimeLineControl.TimeLineData
  26. .GetTimeLineEventLogicGroup<TimeLineEventLogicGroupBasic>("fangun1", null);
  27. try
  28. {
  29. timeLineEventLogicGroup.SetCombatInfo(combatHeroEntity, null, null, new TriggerData(), null);
  30. timeLineEventLogicGroup.TimeLineUpdateEnd= delegate
  31. {
  32. combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle);
  33. };
  34. combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup(timeLineEventLogicGroup);
  35. }
  36. catch (Exception e)
  37. {
  38. LogTool.Error(e);
  39. }
  40. ACurve= combatHeroEntity.combatHeroTimeLineControl.TimeLineData.GetTimeLineEventACurve("fangun1", "fangun", null);
  41. startPos = combatHeroEntity.dotPos;
  42. targetPos = startPos + combatHeroEntity.combatHeroGameObject.rotation * new Vector3(0, 0, -dis);
  43. _currTime = 0;
  44. }
  45. protected override void ProUpdate(float t)
  46. {
  47. // _currTime += t * speed;
  48. // // Vector3 moveToTarget = Vector3.Lerp(startPos, targetPos, ACurve.Evaluate(_currTime));
  49. // //
  50. // //
  51. // // combatHeroEntity.CombatAIBasic.NavMeshAgent.Raycast(moveToTarget, out NavMeshHit hit);
  52. // // if (!hit.hit)
  53. // // {
  54. // // combatHeroEntity.combatHeroGameObject.SetPosition(moveToTarget);
  55. // // }
  56. //
  57. // if (_currTime >= 1)
  58. // {
  59. //
  60. // return;
  61. // }
  62. }
  63. }
  64. }