| | |
| | | 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; |
| | | } |
| | | |