导入spine插件
需要使用龙骨动画的话,首先我们得去spine官网下载Unity插件包:spine官网
打开Unity工程
双击下载好的spine unity插件包
或者你也可以在 Unity 菜单中依次点击:Assets->Improt Package->Custom Package ,导入下载好的插件。
接下来unity开始准备资源包
准备完成后会弹出一个是否确认导入该包的提示,,如果你想查看案例的话,直接勾选所有,点击Import导入。如果你只需要插件,有spine基础,则不需要 Spine Examples,直接取消对Spine Examples的勾选即可。
作为演示,这里我取消 Spine Examples导入。
导包前工程目录如下:
导包后目录结构如下,会多一个spine文件
导入spine资源
在使用骨骼动画之前,美术大大会提供给我们动画资源,如下:
一个骨骼动画包含三个文件,分别是: atlas.txt、json、png。
注意:有的美术大大省事,会将atlas.txt直接给成atlas。这时候你一定要手动改成atlas.txt
新建hero_pro文件夹,用来存放改骨骼动画的资源。
将美术大大给到的动画资源选中,拖进该文件夹:
这时会在该文件夹内出现6个文件,除了上述三个美术大大给到的文件外,新增了三个新文件,分别是_Atlas 、_Material 和 _SkeletinData:
- _Atlas资源包含一个材质引用和.atlas.txt 。
- _Material资源包含一个着色器引用和.png纹理。
- _SkeletonData资源包含一个json引用和_Atlas资源。
除了文件夹内容有改变,在控制台上,我们能看到一个日志log,这个log是导入成功的日志:
使用spine
在Hierarchy面板中,依次点击 Spine->SkeletonGraphic(UnityUI)
这时,面板上会生成一个名为New SkeletonGraphic的物体
接下来需要为New SkeletonGraphic赋值,将 Spine 资源导入时生成的 _SkeletinData 文件拖到动画 UI 对象的 Skeleton Data Asset 属性中
现在,我们随便选择一个动画,使之循环播放,如图所示:
运行游戏,我们会看到该动作的骨骼动画,是不是很神奇。站在巨人的肩膀上,实现我们的需求,轻松且方便。
代码控制spine动画
新建Scripts文件夹,并创建SpineTest脚本。
通过动画名播放动画
使用方式1
public SkeletonAnimation anim;
// 参数含义 起始帧,动画名,是否loop
anim.state.SetAnimation(0, "run", true);
使用方式2
public SkeletonGraphic anim;
// 参数含义 起始帧,动画名,是否loop
anim.AnimationState.SetAnimation(0, "run", true);
通过动画下标播放动画
public SkeletonGraphic anim;
anim.SkeletonData.Animations.Items[0].Name;
anim.AnimationState.SetAnimation(0, aniName, true);