释放prefab时和其他prefab共享的图片也被释放掉,

释放prefab时和其他prefab共享的图片也被释放掉,如何才能排除那些其他地方有引用的资源呢?

我deps获取的一堆uuid怎么才能判断出他们在其他prefab里面被引用录

有没有办法解决这个排除共享的资源的办法?

release会把贴图彻底从GPU上清掉,注意这一点。

可以通过cc.loader.getRes获取图片资源,接着就可以获取到uuid了

嗯这个我是知道的,但是怎么判断这各资源是正在被使用的呢?

遍历所有加载资源的依赖,看看是否包含这个资源,getDependsRecursively可以查询当前加载资源的所有依赖

我是这样做的,我关闭这个prefab实例化的界面之后要释放他加载的资源,使用getDependsRecursively获取了他所有依赖的资源,但是我需要的是这里面哪些资源是和目前运行界面共享的·资源,只有知道了这个才能排除他,不释放他,现在的问题是,我getDependsRecursively获取过来的这些资源怎么才能知道他是正在被使用的,我getDependsRecursively得到的资源应该也是在你所说的所有加载的资源依赖里面的,还是不能知道他有没有被使用

问题解决了吗?我也遇到这个问题了,自己写了引用计数,但是很多地方不太好计算,会出错。

试试这些? Cocos Creator 通用框架设计 —— 资源管理极简资源释放 或者 ResourceManager

你的方案是可以的,不过这个项目已经做了一年了,不好大改了。我现在是释放一些相对独立的资源,剔不开的就算了…

这个基本不用改原有的项目代码

谢谢大佬,终于可以了,如果用到对象池需要简单处理下。大老牛逼!