【提问】静态和动态资源没有拆分,资源引用和释放怎么来做

项目老,没做资源释放,现在想做的话,load prefab后遍历prefab,存储<name,true>的形式
1.动态加载了静态资源,这种情况下资源add吗?
2.动态加载时并不知道资源是静态资源,对资源对了add,加载后发现是静态资源,要怎么做

想的有点头秃,想不出来一个好的方案,希望能有大佬帮忙点拨一下。

动态加载了静态资源这个说法是错的,应该是你这个动态资源被其他prefab静态引用了。只针对你的动态加载代码做计数引用,比如动态资源a被prefab引用了,运行时又重复动态加载了资源a;正常你的动态加载代码执行了加载prefab和资源a,你分别给prefab和资源a计数加1。但因为资源a又被prefab静态引用了,动态加载prefab引擎会自动给资源a计数加1,实际资源a引用次数为2了。释放资源时(下面顺序很重要)你先将节点destroy,再prefab计数减1释放(同时引擎会将资源a从2减到1了),再资源a计数减1释放。总的来说你动态加载代码封装好,实际你要处理的是动态计数一次prefab和资源a,再动态计数减prefab和资源a。(被prefab依赖的资源a的计数不用你管)

动态加载某个东西后,引用加1,释放时候检查计数 如果是0 就释放,否则就不要释放

1.静态资源计数是引擎自己±的
2.动态是加载的时候手动+1并保存记录,下次再用load接口加载判断记录是否有,有就不+1了
3.释放的时候-1并从记录移除,如果静态在引用该资源,不会因为计数=0释放,如果静态没有引用该资源,则计数=0释放。
不知道我这样行不

引用从非0变成0就会释放,不会因为还有静态引用就不释放,反而因为释放了 静态引用就会显示异常(变成黑块)