| | |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using Spine.Unity; |
| | | using Cysharp.Threading.Tasks; |
| | | |
| | | public class MotionBase |
| | | { |
| | |
| | | |
| | | PlayAnimation(MotionName.idle, true); |
| | | SetupAnimationHandlers(); |
| | | skillTrack = null; |
| | | |
| | | if (skelAnim.gameObject != null) |
| | | illusionShadow = skelAnim.gameObject.AddMissingComponent<SkeletonIllusionShadow>(); |
| | |
| | | return ExecuteSkillAnim(skillConfig, skillBase, onComplete, targetAnim, true, isSubSkill); |
| | | } |
| | | |
| | | private Spine.TrackEntry skillTrack = null; |
| | | |
| | | |
| | | private Spine.TrackEntry ExecuteSkillAnim(SkillConfig skillConfig, SkillBase skillBase, Action onComplete, |
| | | Spine.Animation targetAnim, bool hasAnim, bool isSubSkill) |
| | | { |
| | |
| | | } |
| | | } |
| | | |
| | | Spine.TrackEntry skillTrack = null; |
| | | |
| | | if (hasAnim) |
| | | { |
| | | if (null != skillTrack) |
| | | { |
| | | //等待上一技能动画结束 暂时处理办法 |
| | | UniTaskExtension.DelayFrames((GameObject)null, 1, () => |
| | | { |
| | | if (skillBase != null && !skillBase.IsFinished()) |
| | | { |
| | | PlaySkillAnimation(skillConfig, skillBase, isSubSkill, onComplete); |
| | | } |
| | | }); |
| | | return null; |
| | | } |
| | | |
| | | skillTrack = animState.SetAnimation(trackIndex, targetAnim, false); |
| | | if (null == skillTrack) |
| | | { |
| | |
| | | RemoveAction(frameHandler); |
| | | onComplete?.Invoke(); |
| | | skillBase.OnFinalFrameEnd(); |
| | | skillTrack = null; |
| | | } |
| | | } |
| | | }; |
| | |
| | | availableSubTracks.Enqueue(i); |
| | | |
| | | currentTrack = null; |
| | | |
| | | skillTrack = null; |
| | | |
| | | playingSkillAnim = false; |
| | | PlayAnimation(MotionName.idle, true); |
| | |
| | | skeleton.SetToSetupPose(); |
| | | // skeleton.UpdateWorldTransform(); |
| | | } |
| | | |
| | | skillTrack = null; |
| | | // 10. 播放待机动画 |
| | | PlayAnimation(MotionName.idle, true); |
| | | skeletonAnim.LateUpdate(); |
| | |
| | | } |
| | | } |
| | | |
| | | public bool CanCastSkill() |
| | | { |
| | | // 上次释放的技能 释放结束了没有 |
| | | return !playingSkillAnim; |
| | | } |
| | | } |