CocosCreator资源释放总结

在用CocosCreator做项目的时候,如果项目过大,资源很多,然后,现在我们假设我们这样设计架构:

1、打开一个界面(预制体)的时候,有关这个预制体的图片资源也用cc.loader加载进来;

2、关闭这个界面的时候,把有关的图片用cc.loader.release释放,如果是公共资源就不释放;

3、换场景的时候我们选择自动释放资源。

 

上面是一个项目资源过多的项目的架构设计的其中一种方法。

 

但是上面的方法在CocosCreator中有一点漏洞:这个漏洞就是如果有用cc.loader.loadRes加载了一个预制体,然后切换了场景,再回到这个场景,然后再次loadRes该预制体的时候,你会发现,这个预制体的图片都显示成黑块了。

造成这个问题的原因是:

用cc.loader.loadRes加载了预制体之后,预制体会一直存在内存中,切换场景之后,所以图片资源释放;

再切回原场景,再用cc.loader.loadRes加载预制体,此时,用的是内存中存放着的预制体;

但是此时,预制体引用的图片资源已经释放,所以是黑块。


原文:https://blog.csdn.net/u013654125/article/details/81567256 

https://docs.cocos.com/creator/manual/zh/asset-workflow/scene-managing.html#async-load-assets