如何监听场上已使用的资源所有依赖数量

想做一个全局监听的资源释放管理器,直接用资源加载引用计数控制不好容易爆炸, 就是相当于每隔一段时间扫描全场有哪些资源在引用 如果没有引用或者加载就开启计时如果计时结束就会销毁

这个设计就是错误的。资源有引用计数,你要用机制来保证引用计数的增加和减少。而不是定期扫描。

我也有想楼主这样的思路.为什么你认为这个思路是错误的呢.

js/ts 语言层面怎么知道是否被引用或没被引用?

你应该提升对自己代码和项目的掌控力,每个资源,每个变量,每个空格标点符号都符合自己预期,而不是靠这种东西来兜底,增加额外逻辑运算不说,还容易让自己越来越菜

没有吧 这个其实也是 我掌控啊, 整个场景所掌握所有的渲染相关的资源也是我这边扫描出来具体数量,并不是说我直接用别人的. 只是说如果我用引用计数 需要写的地方太多,如果别人接手我的项目就得注意很多东西, 我如果写一个全局的控制器去做扫描就可以避免很多理解成本的问题. 主要是出于这个考虑

我想的一个办法是递归所有的节点身上的渲染组件来获取资源,你们觉得可行吗?

就算你扫描了整个场景已用的资源 然后呢 你能得到什么结论?结果就两种可能 有问题或者没问题 然后要做什么?比如有问题 你想倒推出什么要?

考虑过,问题在于节点的脚本内所持有的资源不好检测,比如节点缓存池中的,或者缓存在代码中的.

切换场景的时候清一次,onDestroy的时候该释放的释放掉,其他一般不会有问题,你现在是具体碰到什么问题了么

现在是 如果我有变量引用(当然不是临时变量)到了资源并不是渲染组件控制,但是我的引用计数会为0会导致资源被释放,那么我那个变量就会出问题,所以我才想着能有什么方法拿到所有的引用.

不过我认为这种思路是有价值的,
比如挂机游戏两个风格差异较大的关卡之间可以调用一次,这样避免缓存旧关卡的数据.

不过话说直接跳个场景似乎释放的更彻底…

如果我全部都是一个场景呢,切换的页面也不过是预制体的变化 这样就不行了.所以我猜想着用全局扫描来控制因为这样其实还保险些