U4S4L11——资源打包(发布)加载理论
U4S4L11——资源打包(发布)加载理论
资源打包是指什么?
资源打包是指,将可寻址资源打包到AssetBundle资源绑定包中
以前我们学习AssetBundle时需要我们自己写代码或者通过工具进行打包
现在Addressables
将这个过程自动化了,可寻址资源中资源一般以组为单位进行打包,
最终的AB包数量,都是基于资源组决定的
打包好的AB包,我们可以自定义如何使用它们
- 发布游戏时所有AB包作为原始资源一起打包出去(这样做的目的仅仅是单机游戏为了减小游戏包体)
- 将AB包放到远端服务器,发布游戏时只打包必备资源(这样做的目的是不仅可以减小包体,还可以进行热更新)
资源打包的模式
之前在讲解Packed Assets配置相关时,有一个打包模式的字段Bundle Mode,我们有三种打包的方式
- Pack Together:创建包含组中所有资产的单个包
- Pack Separately:为组中的每个类型的资源创建一个包。如精灵图片中的精灵图片被包装在一起
- Pack Together by Label:为共享相同标签组合的资产创建一个包
一般情况下,我们都使用第一种模式,按组来进行打包,所以我们在整理资源时要尽量合理
资源打包的注意事项
-
场景资源始终有自己单独的包
当一个可寻址包中有场景资源和普通资源时,场景资源和其它资源始终会被分开打包
也就是说,该组一定会生成两个包(即使Bundle Mode选择的是Pack Together ),一个场景的,一个其它资源的 -
资源依赖的注意事项
如果资源a和资源b都使用了资源c,但是资源a和b是可寻址资源但不在一个组中,而c不是可寻址资源
那么这时资源c分别会被打进a和b的包,相当于这时的c就被重复利用了,浪费了空间
较好的解决方案是:将c也作为可寻址资源, a-A包 b-B包 c-C包
这时c不会被打进A、B包,A、B包只会依赖于C,而Addressables
会自动帮助我们处理依赖问题注意:在使用图集时,尤为要注意这个问题,当不同包中内容使用同一个图集中图片时,
建议大家将图集也作为可寻址资源,并且有专门的一个图集包,让其它使用图集中图片的对象会对该图集包产生依赖 -
合理安排可寻址资源分组
同类型,同作用放一起, 比如:角色组、怪物组、武器组、衣服组、登录UI组、装备UI组、音效组、可变贴图组、图集组等等
-
关于包的数量(分组的数量)
要根据实际情况来对资源进行布局,包(分组)过多、包(分组)过大都不太好, 要根据自己的实际情况进行组的安排