| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | using System;using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;using CombatLibrary.CombatLibrary.CombatCore.Utility;using Core.State;using Fort23.Core;using UnityEngine;using UnityEngine.AI;namespace GameLogic.Combat.Hero.State{    public class CombatHeroRollingState : CombatHeroStateBasic    {        public class RollingStateData : CObject, IStateEnterData        {            public Vector3 dir;            public override void ActiveObj()            {            }            public override void DormancyObj()            {            }        }        protected float speed = 1.3f;        protected float dis = 3;        private float _currTime;        private Vector3 targetPos;        private Vector3 startPos;        protected ACurve ACurve;        private RollingStateData _rollingStateData;         public CombatHeroRollingState(CombatHeroEntity combatHeroEntity) : base(combatHeroEntity)        {        }        public override bool IsUpdateLockTarget()        {            return false;        }        protected override void ProEnter()        {            _rollingStateData = iStateEnterData as RollingStateData;            combatHeroEntity.combatHeroAnimtion.Play("idle");            // TimeLineEventLogicGroupBasic timeLineEventLogicGroup =            //     combatHeroEntity.combatHeroTimeLineControl.TimeLineData            //         .GetTimeLineEventLogicGroup<TimeLineEventLogicGroupBasic>("fangun1", null);            // try            // {            //     timeLineEventLogicGroup.SetCombatInfo(combatHeroEntity, null, null, new TriggerData(), null);            //     timeLineEventLogicGroup.TimeLineUpdateEnd = delegate { };            //     combatHeroEntity.combatHeroTimeLineControl.AddEventLogicGroup(timeLineEventLogicGroup);            // }            // catch (Exception e)            // {            //     LogTool.Error(e);            // }            // ACurve = combatHeroEntity.combatHeroTimeLineControl.TimeLineData.GetTimeLineEventACurve("fangun1", "fangun",            //     null);            Vector3 dir = combatHeroEntity.faceDir;            if (_rollingStateData != null)            {                dir = _rollingStateData.dir;            }            combatHeroEntity.GameObject.transform.rotation.SetLookRotation(dir);            startPos = combatHeroEntity.dotPos;            targetPos = startPos + dir * -dis;            _currTime = 0;        }        protected override void ProExit()        {            CObjectPool.Instance.Recycle(_rollingStateData);            _rollingStateData = null;        }        protected override void ProUpdate(float t)        {            _currTime += t * speed;            Vector3 moveToTarget = Vector3.Lerp(startPos, targetPos, ACurve.Evaluate(_currTime));               }    }}
 |