前面已经讲过 Spine自己动画状态机的动画融合,但是万一有哥们就是想要使用Unity的动画系统,那有没有办法呢?答案是肯定的,接下来,就说说如何实现:
1. 在project面板找打你导入的Spine 资源,选中它,点击鼠标右键,在弹出菜单中依次点击 Spine -> Instantiate(Mecanim),然后 unity就会自动将这个Spine资源中的动画全部导入成为Unity的AnimationClip文件。
2. 接下来,就像使用其他正常的unity动画一样,创建一个Animator,然后在里面管理生成的动画文件即可。
这是旧版的路径,新版的路径,首先找到spine动画资源,然后选中它,到它的Inspector面板下,拉到最下方,有这个选项,见图:
点击 Generate Mecanim Controller,就可以了。
这里说一下,如果使用了Mecanim动画系统,Spine动画中的事件就没了,要想监听事件的话,就只能在绑定了Skeleton Animator组件的物体上新建脚本,然后在这个脚本里面写上和事件名字一样的无返回值方法,这样就可以触发回调。
比如,原本Spine动画中,有一个叫做 gunaction 的事件
现在使用了Mecanim动画系统,我们还要想监听这个事件的话,就只能在一个脚本中写上和这个事件同名的方法:
void gunaction(AnimationEvent evt) { Debug.Log("event fired"); }
就像这样。