spine经常出现报错 table index is out of bounds

你看下destroy是否有调用吧


他所在的组件的 isValid是true的


这里发现一个问题,cache的和spinedata内的cache不一样!!!


果然是不一样的,这里的cache没清掉? 动作已经是空的了,但是还有cache

更换更换skeletonData的时候,this._animCache应该也要置空吧!
置空后,添加兼容
image

1赞

我好像找到问题了,看一下解决方案,一起跑跑看

被destroy掉的cache,wasm抛出一个标识错误,然后兼容掉才好吧。这种问题太难找了。
目前应该就是_animCache没有被换掉,且新的spine还没播放动作,然后旧的_animCache已经被销毁了,导致了报错。

1赞

嗯,后面的版本修复

这个问题解决了吗

目前H5和小游戏上暂时没发现报错了。

请教一下改了哪些地方呢

可以看一下上面的【解决方案】。我改了引擎的源码

设置skeletonData的时候将_animCache赋空,然后updateCache里面加了一行安全代码嘛,我改了没用,看来还有其他问题

是什么问题?看看?

image

你改了之后,记得删除.cache文件哦。让引擎重新编译。我之前也是这个报错。现在是没发现了


我们的报错位置不一样,我是这个地方报错,调的wasm里面的方法

是的,是这里,然后再往下就报错了。


从这里往下看。是一样的问题的。你那个代码下去之后,发现model是空的,根本原因是spine的_animCache和当前spine不一致

按照你的步骤走了一遍,报错确实和你一样,但是我缓存模式用的realtime模式,不会用到_animCache

哦,那不清楚了。我们全部是使用缓存。你可以尝试try之后,断点看看

好的,我再查一下,感谢

请问解决了吗?跟你遇到一个位置的报错