using System; using System.Diagnostics; public class IVMateDisappear : State { Action onComplete; public void Setup(Action onComplete) { this.onComplete = onComplete; } public override void Enter() { Debug.Assert(Owner.Excutor.SkeletonAnimation != null && Owner.Excutor.SkeletonAnimation.TryGetAnimation("warp_out", out Spine.Animation _), "SkeletonAnimation is null or warp_out animation not exist"); Owner.Excutor.SkeletonAnimation.AnimationState.SetAnimation(0, "warp_out", false); } public override void Excute() { var trackEntry = Owner.Excutor.SkeletonAnimation != null ? Owner.Excutor.SkeletonAnimation.AnimationState.GetCurrent(0) : null; if (trackEntry is null || trackEntry.IsComplete) onComplete?.Invoke(); } public override void Exit() { onComplete = null; } }