CombatMiniSceneSwitchState.cs 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. using Excel2Json;
  2. using Fort23.Core;
  3. using Fort23.UTool;
  4. using GameLogic.Combat.CombatTool;
  5. using GameLogic.Combat.Hero;
  6. using UnityEngine;
  7. using Utility.UITool;
  8. namespace GameLogic.Combat.CombatState
  9. {
  10. public class CombatMiniSceneSwitchState: CombatStateBasic
  11. {
  12. private Vector3 dir;
  13. private Vector3 moveTargetDir;
  14. private float currTime;
  15. private int state;
  16. private Vector3 startPos;
  17. private Vector3 startEulerAngles;
  18. private float speed=0.5f;
  19. private float feiXingCurTime;
  20. public CombatMiniSceneSwitchState(CombatController combatController) : base(combatController)
  21. {
  22. }
  23. protected override void ProEnter()
  24. {
  25. // CombatController.CombatCameraControllder.isStop = true;
  26. CombatController.IsFightState = false;
  27. CombatController.GameTimeLineParticleFactory.RecycleAllFxAiLogicBasic();
  28. CombatHeroEntity playerHeroEntity =CombatController.currActiveCombat.playerHeroEntity;
  29. // if (playerHeroEntity != null)
  30. // {
  31. // playerHeroEntity.PlayAnim(CombatHeroStateType.idle, true, 0, false, 1);
  32. // CombatController.MagicWeaponCombatSence.CloseSecene();
  33. // }
  34. startPos = playerHeroEntity.GameObject.transform.position;
  35. startEulerAngles = playerHeroEntity.GameObject.transform.rotation.eulerAngles;
  36. InitScenes();
  37. // CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
  38. // Vector3 target = playerHeroEntity.GameObject.transform.TransformPoint(new Vector3(2, 2, 1));
  39. // moveTargetDir = (target - playerHeroEntity.GameObject.transform.forward).normalized;
  40. // dir = playerHeroEntity.GameObject.transform.forward;
  41. // currTime = 0;
  42. state = 0;
  43. // feiXingCurTime = 0;
  44. }
  45. protected override void ProUpdate(float t)
  46. {
  47. CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity;
  48. if (playerHeroEntity == null||state==2)
  49. {
  50. return;
  51. }
  52. float add = 0.1f;
  53. Vector3 pos = playerHeroEntity.dotPos;
  54. Vector3 dir = CombatController.currActiveCombat.CombatSenceController.moveDir;
  55. float fx = 1;
  56. pos += dir.normalized * CombatController.currActiveCombat.CombatHeroController.moveSpeed * t;
  57. playerHeroEntity.combatHeroGameObject.SetPosition(pos);
  58. playerHeroEntity.GameObject.transform.rotation = Quaternion.LookRotation(dir * fx);
  59. CombatController.CombatHeroController.Update(t);
  60. CombatController.CombatCameraControllder.Update(t);
  61. CombatController.GameTimeLineParticleFactory.CombatUpdate(t);
  62. }
  63. private async void InitScenes()
  64. {
  65. CombatController.currActiveCombat.CombatSenceController.Flight(3, -90, 10);
  66. await TimerComponent.Instance.WaitAsync(2000);
  67. EventManager.Instance.Dispatch(CustomEventType.ShowLoadingUI, null);
  68. await TimerComponent.Instance.WaitAsync(2000);
  69. state = 2;
  70. CombatHeroEntity playerHeroEntity =CombatController.currActiveCombat.playerHeroEntity;
  71. playerHeroEntity.GameObject.transform.position = startPos;
  72. playerHeroEntity.GameObject.transform.rotation = Quaternion.Euler(startEulerAngles);
  73. SmallPlacesConfig smallPlacesConfig =
  74. ConfigComponent.Instance.Get<SmallPlacesConfig>(PlayerManager.Instance.CurrentsmallPlaces.id);
  75. await CombatController.CombatSenceController.InitScenes(smallPlacesConfig.scencName);
  76. EventManager.Instance.Dispatch(CustomEventType.CloseLoadingUI, null);
  77. CombatController.CombatCameraControllder.isStop = false;
  78. CombatController.ChangeState(CombatController.fight);
  79. }
  80. }
  81. }