--刚刚做完一个xlua的的热更项目,对AssetBundle资源分类总结一下。纯理论,闲谈知识,要是有建议,尽管提 ,不掺杂代码。
--这里说说,AB是如何打包,如果下载,如何加载。
1.关键词理解:有依赖(公共),无依赖,常驻(使用频率),非常驻。
所谓依赖,无依赖。
画红圈的就是有依赖关系的,但是Unity中,如何知道有哪些资源有依赖关系呐。
一般,我们每次Build后会自动生成AndroidManifest.xml,这里面就详细叙述了资源之间的
依赖关系。
2.下载资源?
下载资源的话,我这边是通过Version文件对比获取所需下载资源,没什么好讲的。
一张图,解释:
3.如何加载?
最主要的就是这边了。
I.加载的优先级
首先加载的是 常驻公共资源,
再加载经常反复资源,
当然如果进入战斗(某个特定模块),就加载非常驻公共资源。
其他资源是当使用时加载。
II.释放资源
常驻资源肯定是不能unload(false)的,这边释放资源,释放的是其他资源。
对于unload(false),还是unload(true) .
unload(false)适合反复使用资源,一次Load之后,再也不需要Load,且与其他资源没有"被依赖关系"。
unload(false),释放的是自身。
unload(true),释放的是自身以及自身所有的子节点。因此,unload(true),慎用。
III 缓存资源
一般常驻资源,最好缓存把AB存为需要的GameObject,例如子弹之类。