看了文档,发现cc.loader.getDependsRecursively传参的资源必须是已经加载完成的才能获取到所有的依赖.
例如现在有A,B两个资源,A资源引用了B资源, 这时候先独立加载B资源并加载成功, 然后接着加载A资源,在A加载过程对B进行释放(因为在A加载成功前,无法通过cc.loader.getDependsRecursively获取到A的引用),当A加载完成后,就会发现B资源丢失了,从而引发渲染错误.
现在的解决方案有几点
1.在释放资源的时候采用延时释放(此方案并不严谨,时间点卡到刚好释放的时机还是会出问题)
2.在有加载资源的情况下,避免对资源进行释放.
3.cc.loader.getDependsRecursively如果能在加载前就可以获取到引用关系,这时候就可以对释放进行过滤.
所以你这个问题应该跟我是一样的,在加载过程中,资源所引用的资源有可能会被释放掉,我现在就是判定在加载过程中先不进行资源释放,能加载完成了再检测释放.避免误释放
尝试出来记得分享一下呀