using Excel2Json; using Fort23.Core; using Fort23.UTool; using GameLogic.Combat.CombatTool; using GameLogic.Combat.Hero; using UnityEngine; using Utility.UITool; namespace GameLogic.Combat.CombatState { public class CombatMiniSceneSwitchState: CombatStateBasic { private Vector3 dir; private Vector3 moveTargetDir; private float currTime; private int state; private Vector3 startPos; private Vector3 startEulerAngles; private float speed=0.5f; private float feiXingCurTime; public CombatMiniSceneSwitchState(CombatController combatController) : base(combatController) { } protected override void ProEnter() { // CombatController.CombatCameraControllder.isStop = true; CombatController.IsFightState = false; CombatController.GameTimeLineParticleFactory.RecycleAllFxAiLogicBasic(); CombatHeroEntity playerHeroEntity =CombatController.currActiveCombat.playerHeroEntity; // if (playerHeroEntity != null) // { // playerHeroEntity.PlayAnim(CombatHeroStateType.idle, true, 0, false, 1); // CombatController.MagicWeaponCombatSence.CloseSecene(); // } startPos = playerHeroEntity.GameObject.transform.position; startEulerAngles = playerHeroEntity.GameObject.transform.rotation.eulerAngles; InitScenes(); // CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity; // Vector3 target = playerHeroEntity.GameObject.transform.TransformPoint(new Vector3(2, 2, 1)); // moveTargetDir = (target - playerHeroEntity.GameObject.transform.forward).normalized; // dir = playerHeroEntity.GameObject.transform.forward; // currTime = 0; state = 0; // feiXingCurTime = 0; } protected override void ProUpdate(float t) { CombatHeroEntity playerHeroEntity = CombatController.currActiveCombat.playerHeroEntity; if (playerHeroEntity == null||state==2) { return; } float add = 0.1f; Vector3 pos = playerHeroEntity.dotPos; Vector3 dir = CombatController.currActiveCombat.CombatSenceController.moveDir; float fx = 1; pos += dir.normalized * CombatController.currActiveCombat.CombatHeroController.moveSpeed * t; playerHeroEntity.combatHeroGameObject.SetPosition(pos); playerHeroEntity.GameObject.transform.rotation = Quaternion.LookRotation(dir * fx); CombatController.CombatHeroController.Update(t); CombatController.CombatCameraControllder.Update(t); CombatController.GameTimeLineParticleFactory.CombatUpdate(t); } private async void InitScenes() { CombatController.currActiveCombat.CombatSenceController.Flight(3, -90, 10); await TimerComponent.Instance.WaitAsync(2000); EventManager.Instance.Dispatch(CustomEventType.ShowLoadingUI, null); await TimerComponent.Instance.WaitAsync(2000); state = 2; CombatHeroEntity playerHeroEntity =CombatController.currActiveCombat.playerHeroEntity; playerHeroEntity.GameObject.transform.position = startPos; playerHeroEntity.GameObject.transform.rotation = Quaternion.Euler(startEulerAngles); SmallPlacesConfig smallPlacesConfig = ConfigComponent.Instance.Get(PlayerManager.Instance.CurrentsmallPlaces.id); await CombatController.CombatSenceController.InitScenes(smallPlacesConfig.scencName); EventManager.Instance.Dispatch(CustomEventType.CloseLoadingUI, null); CombatController.CombatCameraControllder.isStop = false; CombatController.ChangeState(CombatController.fight); } } }