向大佬问一下,对Skeleton赋值一个 load出来的资源时。 之后对skeletonData进行了赋。 如果此时将load出来的资源给释放了,再次使用skeleton就会报错。有什么解决办法吗

image

NewProject_2.zip (637.4 KB)

那就再load一次

如果我有很多这种节点的时候,我没办法知道这个节点上一次load的是哪个资源啊 :rofl:

哪怕知道了,我也要先把原资源load出来,然后再load新的资源进行显示,再把源资源给释放。 感觉很麻烦

我觉得报错应该是这样的 a 引用了c资源 a此时使用完了准备释放掉c资源 但同时 此时b正要加载引用b资源 所以报错

image
可是我在这里已经没有再使用 spine 资源了, 值也赋值为空。
但是跟断点,看这个skeleton里面还有对spine的图片资源进行引用的地方,再次激活显示的时候会用到已经被释放的 Texture,导致报错 。
就是有没有办法在skeletondata赋空的时候,顺便把所有的skeleton里面所有对资源引用的地方清理一下?

有办法,获取到sp.skeleton组件执行destroy()

而不是给他赋空值

是的,我想了很久,发现我解决不了这个问题。
然后我就只能把 原 Skeleton给destory掉 并重新给节点添加一个新的Skeleton。
这样确实没啥问题了

image 这段代码会报个这个错。 我现在就想复用这个skeleton组件,但是只要对资源进行释放了,就会报错