骨骼动画代码控制

public class L36 : MonoBehaviour
{
    private SkeletonAnimation sa;
    // Start is called before the first frame update
    void Start()
    {
        sa = GetComponent<SkeletonAnimation>();

        //播放动画
        //方法一:改变SkeletonAnimation中的参数,需要先设置循环状态再修改
        sa.loop = false;
        sa.AnimationName = "";
        //方法二:使用SkeletonAnimation中动画状态改变的函数
        //马上切换动画(默认索引,动画名,loop状态)
        sa.AnimationState.SetAnimation(0, "", false);
        //排队播放,等当前动画播放完后再播放(默认索引,动画名,loop状态,延迟时间)
        sa.AnimationState.AddAnimation(0, "", false,0);

        //转向
        sa.skeleton.ScaleX = -1;

        //动画事件
        //动画开始播放
        sa.AnimationState.Start += (t) =>
        {

        };
        //动画被中断或清除
        sa.AnimationState.End += (t) =>
        {

        };
        //动画播放完毕
        sa.AnimationState.Complete += (t) =>
        {

        };
        //动画播放时添加自定义事件
        sa.AnimationState.Event += (t,e) =>
        {

        };

        //特性
        //动画特性 [SpineAnimation] (快捷设置动画字符串名称)
        //骨骼特性 [SpineBone]
        //插槽特性 [SpineSlot]
        //附件特性 [SpineAttachment]

        //获取骨骼和设置插槽附件
        //获取骨骼(骨骼名)
        Bone b = sa.skeleton.FindBone("");

        //设置插槽附件(类似换装)
        sa.skeleton.SetAttachment("SlotName", "AttachmentName");

        //在UI中使用,在场景上创建时选择SkeletonGraphic(UI)
    }
}
posted @ 2025-04-02 19:10  cannedmint  阅读(74)  评论(0)    收藏  举报