龙骨渲染重新加载的资源时表现出错,版本2.3.1

动态加载的龙骨资源
在关闭界面释放资源后,再重新进入界面加载资源,渲染出来的表现有问题

经过验证是释放掉了,cc.loader.getRes(url,type),获取的时候是null,但是龙骨渲染出来的是有问题的。
龙骨的表现是通过resources加载模型,远程加载服装部件。然后重新加载之后渲染就有问题了。

@panda @jare 召唤大佬们

谢谢反馈,我测试看看。

得看下你是怎么释放资源的。你发一下代码片段或者 demo 给我。

open 之后加载出龙骨后,再关闭,关闭之后再点击open就有问题了 龙骨无法正常渲染了

dragonTest.rar (2.5 MB)

cc.loader.release 这个接口会将图集资源中的纹理资源彻底从 GPU 上清除,会导致改图集纹理无法二次加载使用。

建议你直接对 prefab 资源进行释放。

当你确定不再使用这个资源的时候,再使用 release 去释放。

那这样有可能用的频次很少,也是要把它保留在内存里呗:joy:。 释放prefab,如果不使用getDependsRecursively()这个方式应该也不会释放掉龙骨相关资源吧,如果用了,按照现在的方式应该是同样不能正常渲染吧。。

我看了test研究了下 只要这样纹理成对释放 重新加载就没问题

    cc.loader.releaseAsset(this.ske.dragonAtlasAsset);
    cc.loader.release('Demon/Demon_tex');
    cc.loader.releaseAsset(this.ske.dragonAsset);或者cc.loader.release('Demon/Demon_ske');

下面2句代码 释放引用的骨骼信息数据 作用一样

    cc.loader.releaseAsset(this.ske.dragonAsset);
    cc.loader.release('Demon/Demon_ske');

但是当释放纹理时 情况就不同了 必须要一起使用才能正确释放到 引用的纹理信息数据 和 纹理资源
不然导致二次加载时 纹理无法正确加载!!!

    cc.loader.releaseAsset(this.ske.dragonAtlasAsset);//单独使用时  纹理信息数据释放  纹理资源未释放

    cc.loader.release('Demon/Demon_tex');//单独使用时  虽然释放了路径下的纹理资源 但导致二次加载时 纹理无法正确加载

同样 图集资源 释放 也要这样releaseAsset掉所有引用 然后release纹理
不是很懂。。。

1赞