using System; using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic; using CombatLibrary.CombatLibrary.CombatCore.Utility; using Fort23.UTool; using Unity.AI.Navigation; using UnityEngine; using UnityEngine.AI; namespace GameLogic.Combat.Hero.State { public class CombatHeroRollingState : CombatHeroStateBasic { protected float speed = 3; protected float dis = 2; private float _currTime; private Vector3 targetPos; private Vector3 startPos; protected ACurve ACurve; public CombatHeroRollingState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity) { } protected override void ProEnter() { combatHeroEntity.combatHeroAnimtion.Play("idle"); TimeLineEventLogicGroupBasic timeLineEventLogicGroup = combatHeroEntity.combatHeroTimeLineControl.TimeLineData .GetTimeLineEventLogicGroup("fangun1", null); try { timeLineEventLogicGroup.SetCombatInfo(combatHeroEntity, null, null, new TriggerData(), null); timeLineEventLogicGroup.TimeLineUpdateEnd= delegate { combatHeroEntity.CombatAIBasic.ChangeState(CombatHeroStateType.idle); }; combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup(timeLineEventLogicGroup); } catch (Exception e) { LogTool.Error(e); } ACurve= combatHeroEntity.combatHeroTimeLineControl.TimeLineData.GetTimeLineEventACurve("fangun1", "fangun", null); startPos = combatHeroEntity.dotPos; targetPos = startPos + combatHeroEntity.combatHeroGameObject.rotation * new Vector3(0, 0, -dis); _currTime = 0; } protected override void ProUpdate(float t) { // _currTime += t * speed; // // Vector3 moveToTarget = Vector3.Lerp(startPos, targetPos, ACurve.Evaluate(_currTime)); // // // // // // combatHeroEntity.CombatAIBasic.NavMeshAgent.Raycast(moveToTarget, out NavMeshHit hit); // // if (!hit.hit) // // { // // combatHeroEntity.combatHeroGameObject.SetPosition(moveToTarget); // // } // // if (_currTime >= 1) // { // // return; // } } } }