Unity游戏开发 Spine集成和使用
古月三齐 2020-03-01 21:55:12 110 收藏
展开
目录
准备工作
导入美术资源
制作预制件
调用接口播放动画
动画事件
UI中的Spine
UI Spine使用接口
准备工作
到该链接下载Spine:http://zh.esotericsoftware.com/spine-unity-download/
下载好之后导入unitypackage
导入美术资源
Spine的资源包括三种:xx.atlas, xx.json, xx.png
导入后会自动生成材质以及资源文件
制作预制件
场景中创建一个空预制,挂载SkeletonAnimation脚本,将上一步生成好的SkeletonData挂载到脚本中。
调用接口播放动画
// 获取spine动画组件
ani = GetComponent();
// SetAnimation为立即播放指定动画
ani.AnimationState.SetAnimation(0, "walk", true);
// AddAnimation是将指定动画添加到播放队列,当正在播放的动画播放完成后就会播放队列中的动画
ani.AnimationState.AddAnimation(0, "walk", true, 0f);
动画事件
// 注册动画回调
ani.state.Event += state_Event;
// 回调方法
void state_Event(TrackEntry state, Spine.Event e)
{
// 通过判断事件的名称来执行特定操作(比如播放音效)
if (e.Data.Name == "dosth")
{
Debug.Log(e.Data.Name);
}
}
UI中的Spine
如下图所示,创建一个画布,将预制件拖到画布下
将原来的SkeletonAnimation组件替换为SkeletonGraphic组件
将材质上面生成好的材质中的shader替换为Spine/SkeletonGraphic
这样spine动画就能和普通的UI一样在画布中使用,还可以被mask影响。
UI Spine使用接口
// 播放方式
SkeletonGraphic ani;
ani = GetComponent();
ani.AnimationState.SetAnimation(0, "walk", true);
ani.AnimationState.AddAnimation(0, "walk", true, 0f);
// 注册事件方式
ani.AnimationState.Event += state_Event;
void state_Event(TrackEntry state, Spine.Event e)
{
if (e.Data.Name == "dosth")
{
Debug.Log(e.Data.Name);
}
}