1.首先简单了解下spine导出的东西是什么。spine导出的文件会有3个:png图集、atlas图集切分文件、记录骨骼、动画的一个二进制skel文件 或者 一个json文件。

2.要把spine导出的文件导入进unity,只要事先在spine-unity页面下载好对应的 spine-runtime unitypackage就可以。注意这个版本卡的特别死,unity版本和spine导出版本是必须严格遵照要求的,具体看页面。安装好对应的package之后,需要先把atlas后缀加上.txt,再给二进制文件skel加上.bytes,json就不用改了,然后直接复制粘贴文件到unity里就会自动转换。

3.在这里记录一个大坑,众所周知 Spine3.8.75 这个版本是网上能找到的破解版本。所以Spine直接在自己的 3.8版本unity runtime里,特别在2个地方写了一行:

1
2
if ("3.8.75" == skeletonData.version)
throw new Exception("Unsupported skeleton data, please export with a newer version of Spine.");

这会直接导致你的转换文件生成失败。我一开始以为是自己资源的版本导出有问题,研究了很久,最后感觉哪都跑通了就这个离奇,就直接查代码了,结果才发现这行特殊的代码。

实在是666。

解决方法是直接全局搜索到"3.8.75",然后注释掉就完事了。

4.一个简单的优化,就是spine的文件选择skel二进制而不是json文件。json文件的读取,那可真的是慢到爆炸了…其他的话应该还可以在战斗开始前就把所有可能用到的人物bytes全部加载好一起进,这个具体怎么操作还没看估计得小改一下spine的加载部分。

5.途径的有用链接

Spine-Unity 官网页面:http://zh.esotericsoftware.com/spine-unity-download/

一个日本老哥做的 skel转json:https://naganeko.pages.dev/chibi-gif/

6.总得来说还是第3点最离谱,网上看到很多有同样问题的却只有人回答说要把json文件里的版本号改成3.8这种方法去解决。说回来如果Spine真的想玩一手盗版用户,为什么还要抛出而不是直接在这里return掉呢,那样我估计可以自我怀疑到天荒地老了。总之不会做商用仅作学习,搞了一晚上总算可以开始用spine了。