记录一下愚蠢的操作,经过一番折腾,得出了一个很常识的结论,但是也对spine在原生上源码有所了解。

没事摆弄spine的时候发现这个代码在原生上会出现指针异常,然后临时学了一点C++去看了看源码。最后定位到了这里 ,一开始以为是先delete了旧的attachment,但是更新drawOrder的时候是在setSkin,所以导致render的时候用的是旧的attachment,所以指针异常,改了一番发现还是指针异常,然后翻了半天代码,找到了render的地方,断点、查看。哦,这里出了问题 ,发现资源丢失了,然后继续找, 哦,delete attachment的时候清理了资源。
这时候就在想为什么要清理他啊,attachment.copy的时候他们不是共用的一份嘛?为什么这么写,然后找源码image
哦?好像只有第一次创建的时候传了deleteAttachmentVertices这个清理函数。

得出结论,就是我用的流程不对,不能直接去skin上修改,因为多个spine用的是一份源数据,所以修改spine的skin的任何相关操作都要copy一份skin,在副本上去修改。

这spine 要是每周时间里不看到几个说崩溃无助的文章啊 我都觉得不自然了,反正我是没用啊 只用官方的动画格式 至少每什么问题,用spine的 真的有那么大效果提升吗 感觉跟遇到的问题和坑 不成比例啊

我目前也用不到,只是现在闲出P了,看看源码了解一下 :joy: