UFL5-5——AB包资源管理器回顾及潜在问题考虑
UFL5-5——AB包资源管理器回顾及潜在问题考虑
前置知识点:UH1——AssetBundle
Assetbundle资源加载模块我们主要做什么
目前已有的AB包资源管理器:UH1L4——AB包资源管理器
目前已有的ABManager
中的异步加载部分,只是从AB包中异步加载资源,并没有真正的去异步加载AB包本身,
我们要做的事情,就是对ABManager
进行优化,让其中的异步加载真正意义上的实现异步,就是将AB包本身的加载也变为异步的
异步加载AB包可能带来的问题
如果我们想要将ABManager
中的异步加载方法改为真正意义上的异步
所谓真正意义上的异步是指:不仅从AB包中加载资源是异步的,还需要在加载AB包时也采用异步
那么我们就需要考虑一个问题,如果当我们正在异步加载AB包时,又进行了一次同步加载AB包是否会报错(因为AB包不允许重复加载)
举例说明问题
假设要加载Assets/StreamingAssets/PC
下的test
AB包
如果先异步加载再同步加载AB包,则同步加载语句将会报错,因为AB包不可重复加载
1 | public class Main : MonoBehaviour |
输出:
如果先异步加载,然后关闭异步加载的协程,再同步加载,依然会报错
1 | public class Main : MonoBehaviour |
输出:
因此,只要调用过异步加载的API,之后在加载同名AB包(无论异步同步)都会报错
修改逻辑时的注意事项
通过验证我们得出结论,异步加载AB包时,再同步加载AB包,会因重复加载而报错,因此我们在修改逻辑时应该考虑到这个问题
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!