spine 所在的node destroy了但是texture mem 不释放,如何释放呢!

有spine的node被destroy()了。。但是gpu texture mem 的内存不释放,
在实际项目中,会打开多个不确定的spine时,内存就爆炸了。比如我有200个角色。。

测试demo已经上传
testspine.zip (682.2 KB)

1赞

难道就没有人遇到我的这个问题吗???

然而,就算改了,也依然无法释放纹理内存。。你TEST了吗????

我没有Test

我猜可能还持有 prefab 的引用,prefab 引用了 spine 导致无法释放

老哥这个问题解决了吗? 我2.4.10spine释放不彻底,痛苦中。。

太球J 八坑了,3.8.4也有这个球问题spine资源无法释放,导致纹理内存一直涨,卡成屎了

你的demo写的有问题 因为在场景节点中把spine.prefab拖进去了
这样虽然myNodes节点释放了,但是this.spine还在引用着prefab资源
修改成: button.ts中删除spine变量,改成动态加载
测试过 这样可以卸载干净
addSpineClick() {

resources.load("spine",Prefab,(err, prefab)=>{

  if(prefab){

    this.myNodes = instantiate(prefab)

    this.myNodes!.parent = this.node;

  }

})

}

delSpineClick() {

this.myNodes?.destroy()

resources.release("spine",Prefab);

this.node.removeChild(this.node.getChildByName("spine")!)

//  this.node.removeAllChildren()

}

gc一下试试

这种方法没用.

你只释放node是没用的,你需要的是释放prefab资源