Creator3.x引擎的动态资源加载和释放方案

mark…

本地静态资源,引擎是怎么加载释放的呢? :rofl:

你说的是本地缓存么

不是,说的就是包里的资源。

顶个,3.8.2也还是一样

想说 loadRemote 的 imageasset都释放了,怎么gfx内存还是下不去,弄了一上午才发现 gfx 降不下来的内存要是手动释放 texture2d 才行……

顶,这是社区把资源管理讲的最详细的帖子

1赞


在这个里面我有一个疑惑。
预制体 里面的某个地方 替换成 动态图片了,当销毁掉预制体时,这个动态图片是否需要开发者手动 修改计数。如果需要的话,这该怎么知道预制体中那些使用了动态资源呀?

需要
你用了动态资源的地方就是使用了动态资源

那是不是在预制体销毁的时候,把当前预制体用到的动态资源计数都减1;
被更换图片显示(替换的动态资源) 被替换下的资源也要 减1 。 是这么操作吗?

  1. 可以这么做
  2. 如果该替换的资源不是动态资源,就不需要,如果是,就需要。(当然一般而言,没必要立即减1,如果有反复使用的可能,可以在预制体销毁时一次性调用)

好的,谢谢答疑。

顺便问句,请问下你认为什么样的资源是"动态资源"?

:joy: 在这里不太清楚,刚搜了一下文档确实没搜到动态资源的关键词;动态资源是否是远程下载下来的资源,加载下来后替换图片?

因为你一直在强调替换纹理,我怕你对动态资源有什么误解

简单理解就是没有挂载的资源就是动态资源

https://docs.cocos.com/creator/3.8/manual/zh/asset/scene.html#防止特定资源被自动释放

没有在预制体上用到的资源,均为动态资源。是这么理解吧?

动态加载是你手动调用,cc.resources.load加载的

项目上,一个图集作为一个AB,这样可行吗?
因为这里1个图集,就是一个模块的UI资源

我没懂emmmm