using UnityEngine;
using Spine;
using Spine.Unity;
public class SpineUIAnimationController : MonoBehaviour
{
public SkeletonGraphic skeletonGraphic; // 引用 SkeletonGraphic 组件
public string firstAnimation; // 第一个动画名称
public string secondAnimation; // 第二个动画名称
public bool loopFirstAnimation; // 第一个动画是否循环
void Start()
{
if (skeletonGraphic == null)
{
Debug.LogError("SkeletonGraphic 组件未设置!");
return;
}
// 订阅动画完成事件
skeletonGraphic.AnimationState.Complete += OnAnimationComplete;
// 播放第一个动画
PlayAnimation(firstAnimation, loopFirstAnimation);
}
void PlayAnimation(string animationName, bool loop)
{
// 设置动画
skeletonGraphic.AnimationState.SetAnimation(0, animationName, loop);
}
void OnAnimationComplete(TrackEntry trackEntry)
{
// 当第一个动画完成时,播放第二个动画
if (trackEntry.Animation.Name == firstAnimation)
{
PlayAnimation(secondAnimation, false); // 这里的 'false' 表示动画不循环
}
}
}