|  |  |  | 
|---|
|  |  |  | private SkeletonIllusionShadow illusionShadow; | 
|---|
|  |  |  | private bool playingSkillAnim = false; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private float pauseTime = 0f; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private float resumeTime = 0f; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public virtual void Init(SkeletonAnimation skelAnim) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | skeletonAnim = skelAnim; | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | animState = skeletonAnim.AnimationState; | 
|---|
|  |  |  | animState.TimeScale = MotionTimeScale; | 
|---|
|  |  |  | skeletonAnim.timeScale = MotionTimeScale; | 
|---|
|  |  |  | skeleton = skeletonAnim.Skeleton; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | private Spine.TrackEntry ExecuteSkillAnim(SkillConfig skillConfig, SkillBase skillBase, Action onComplete, | 
|---|
|  |  |  | Spine.Animation targetAnim, bool hasAnim, bool isSubSkill) | 
|---|
|  |  |  | { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | bool isPangdeSkill = 1003020 == skillConfig.SkillID; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | int loopCount = skillConfig.LoopCount; | 
|---|
|  |  |  | int[] activeFrames = skillConfig.ActiveFrames ?? new int[0]; | 
|---|
|  |  |  | int frameCount = activeFrames.Length; | 
|---|
|  |  |  | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | float currentFrame = 0f; | 
|---|
|  |  |  | if (BattleConst.skillMotionFps > 0) | 
|---|
|  |  |  | currentFrame = hasAnim ? (skillTrack.TrackTime * skillTrack.TimeScale * BattleConst.skillMotionFps) : ((Time.time - startTime) * MotionTimeScale * BattleConst.skillMotionFps); | 
|---|
|  |  |  | float trackTime = 0f; //hasAnim ? skillTrack.TrackTime * skillTrack.TimeScale : (Time.time - startTime) * MotionTimeScale; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (hasAnim) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | trackTime = skillTrack.TrackTime; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | float adjustedTime = Time.time; | 
|---|
|  |  |  | if (pauseTime > 0f && resumeTime > pauseTime) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | startTime = startTime + (resumeTime - pauseTime); | 
|---|
|  |  |  | pauseTime = 0f; | 
|---|
|  |  |  | resumeTime = 0f; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | trackTime = (adjustedTime - startTime) * MotionTimeScale; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | float currentFrame = trackTime * BattleConst.skillMotionFps; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (hasAnim) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public virtual void Pause() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (animState != null) animState.TimeScale = 0f; | 
|---|
|  |  |  | if (skeletonAnim != null) skeletonAnim.timeScale = 0f; | 
|---|
|  |  |  | pauseTime = Time.time; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public virtual void Resume() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (animState != null) animState.TimeScale = MotionTimeScale; | 
|---|
|  |  |  | if (skeletonAnim != null) skeletonAnim.timeScale = MotionTimeScale; | 
|---|
|  |  |  | resumeTime = Time.time; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void HaveRest() | 
|---|
|  |  |  | 
|---|
|  |  |  | public void SetSpeedRatio(float ratio) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | MotionTimeScale = ratio; | 
|---|
|  |  |  | if (animState != null) animState.TimeScale = ratio; | 
|---|
|  |  |  | if (skeletonAnim != null) skeletonAnim.timeScale = ratio; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|