一丶Spine 动画播放的三种方法(API)
网上有很多 Spine 导入 Unity 的教程了,这里就不说了,俺就把今天我理解的写在下面了,内容不多,希望对各路大佬有用~
注:在使用时要 在 代码头 引入命名空间(using Spine.Unity)
这是我定义的变量名
public SkeletonAnimation skeleton;
①直接取 在Spine动画里面写好的动画名 播放;(放在Update里面调用时,能 不覆盖 动画 造成的卡顿)可以搭配状态机来使用
skeleton.AnimationName = "Run";
②在某动画播放完毕时添加动画,调用AnimationState.AddAnimation这个方法;
skeleton.AnimationState.AddAnimation(层级(int),要播放的动画名(string),是否循环(bool),延迟多久播放(float));
③强制播放动画,调用AnimationState.SetAnimation这个方法;
skeleton.AnimationState.SetAnimation(层级(int),要播放的动画名(string),是否循环(bool));
二丶Spine 动画骨骼的使用
注:在使用时要 在 代码头 引入命名空间(using Spine)
我定义的变量名
public Bone bone1
①获得IK骨骼(把.Mix去掉)
bone1.Skeleton.FindIkConstraint(IK骨骼的名字(string)).Mix = 1;
后面的 .Mix 是获得了 该IK骨骼的 混合值(即IK的控制力)(其值的范围在 0 到 1 之间,0为 没有约束,1为 满约束)
void Start()
{
bone1 = skeleton.skeleton.FindBone("target2");
}
这里我的写法有问题 ↑↑↑👆(读者可以自行修改,主要是理解)(因为 bone1 在一开始的时候, 我就通过 FindBone 找到了 IK 这根骨骼(IK也算骨骼,所以能找到))但是要用一开始上面的方法才能调用到 Mix 这个变量;
②设置骨骼的位置,可以通过这个方法来操控 IK,一用来实现 手臂 跟随 鼠标的效果(我这里设置的位置是鼠标的位置)
bone1.SetLocalPosition(要设置的位置(Vector2));