U3L16-2-c——Spine骨骼动画代码相关
U3L16-2-c——Spine骨骼动画代码相关
本章代码关键字
1 | Spine.Unity //Spine代码相关命名空间 |
动画播放
引用 Spine代码相关 需要先引入命名空间 Spine.Unity
1 | using Spine.Unity; |
直接改变SkeletonAnimation中参数
注意!一定要先设置循环,再修改动画名,循环设置才会成功!
1 | skeletonAnimation.loop = true; |
使用SkeletonAnimation中动画状态改变的函数
立刻播放
第一个参数是索引,一般是0;第二个参数是动画名;第三个参数是是否循环
1 | skeletonAnimation.AnimationState.SetAnimation(0, "jump", false); |
队列播放
顾名思义,就是等待上一个动画播放完成后再播放动画
第四个参数是延迟时间
1 | skeletonAnimation.AnimationState.AddAnimation(0, "walk", true, 0); |
转向
1是正向,-1就是负向,ScaleY同理
1 | skeletonAnimation.skeleton.ScaleX = -1; |
动画事件
以下的每个事件添加的函数都需要一个参数t
动画开始播放
1 | skeletonAnimation.AnimationState.Start += (t) => |
动画被中断或者清除
1 | skeletonAnimation.AnimationState.End += (t) => |
播放完成
1 | skeletonAnimation.AnimationState.Complete += (t) => |
做动画时添加的自定义事件
自定义事件的Spine动画制作时添加的事件,我们可以在第二个参数里使用它
1 | skeletonAnimation.AnimationState.Event += (t, e) => |
便携特性
动画特性
用来申明成员变量,使用该特性的成员变量,在inspector窗口上可以直接选择动画,得到该动画的名字,而无需再手动写字符串
这样,在使用一些需要传入 动画的名字字符串 作为参数的方法里,可以直接使用这个成员变量,而不用再写字符串
1 | [ ] |
骨骼特性
用来申明成员变量,使用该特性的成员变量,在inspector窗口上可以直接选择骨骼或者IK点,得到该骨骼或者IK点的名字,而无需再手动写字符串
这样,在使用一些需要传入 骨骼或者IK点的名字字符串 作为参数的方法里,可以直接使用这个成员变量,而不用再写字符串
1 | [ ] |
插槽特性
用来申明成员变量,使用该特性的成员变量,在inspector窗口上可以直接选择插槽,得到该插槽的名字,而无需再手动写字符串
这样,在使用一些需要传入 插槽的名字字符串 作为参数的方法里,可以直接使用这个成员变量,而不用再写字符串
1 | [ ] |
附件特性
用来申明成员变量,使用该特性的成员变量,在inspector窗口上可以直接选择附件,得到该附件的名字,而无需再手动写字符串
这样,在使用一些需要传入 附件的名字字符串 作为参数的方法里,可以直接使用这个成员变量,而不用再写字符串
1 | [ ] |
获取骨骼、设置插槽附件
获取骨骼
可以用这个调整骨骼的各种信息
1 | Bone bone = skeletonAnimation.skeleton.FindBone(boneName); |
设置插槽附件
第一个参数是 要设置附件的插槽,第二个参数是 要设置的附件,用这个可以实现换装
1 | skeletonAnimation.skeleton.SetAttachment(slotName, attachmentName); |
在UI中使用
涉及一部分UGUI的内容
拖入Spine骨骼动画时选择UI,然后拖到Canvas对象下,即可显示出来,并可以使用Rect Transform