Unity游戏开发 Spine集成和使用

目录

 

准备工作

导入美术资源

制作预制件

调用接口播放动画

动画事件

UI中的Spine

UI Spine使用接口


准备工作

到该链接下载Spine:http://zh.esotericsoftware.com/spine-unity-download/

下载好之后导入unitypackage

Unity游戏开发 Spine集成和使用_第1张图片

导入美术资源

Spine的资源包括三种:xx.atlas, xx.json, xx.png

导入后会自动生成材质以及资源文件

Unity游戏开发 Spine集成和使用_第2张图片

制作预制件

场景中创建一个空预制,挂载SkeletonAnimation脚本,将上一步生成好的SkeletonData挂载到脚本中。

Unity游戏开发 Spine集成和使用_第3张图片

调用接口播放动画

// 获取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

Unity游戏开发 Spine集成和使用_第4张图片

这样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);
    }
} 

 

你可能感兴趣的:(Unity游戏开发 Spine集成和使用)