U4S4L11——资源打包(发布)加载理论

资源打包是指什么?

资源打包是指,将可寻址资源打包到AssetBundle资源绑定包中
以前我们学习AssetBundle时需要我们自己写代码或者通过工具进行打包

现在Addressables​将这个过程自动化了,可寻址资源中资源一般以组为单位进行打包,
最终的AB包数量,都是基于资源组决定的

打包好的AB包,我们可以自定义如何使用它们

  1. 发布游戏时所有AB包作为原始资源一起打包出去(这样做的目的仅仅是单机游戏为了减小游戏包体)
  2. 将AB包放到远端服务器,发布游戏时只打包必备资源(这样做的目的是不仅可以减小包体,还可以进行热更新)

资源打包的模式

之前在讲解Packed Assets配置相关时,有一个打包模式的字段Bundle Mode,我们有三种打包的方式

  • Pack Together:创建包含组中所有资产的单个包
  • Pack Separately:为组中的每个类型的资源创建一个包。如精灵图片中的精灵图片被包装在一起
  • Pack Together by Label:为共享相同标签组合的资产创建一个包

一般情况下,我们都使用第一种模式,按组来进行打包,所以我们在整理资源时要尽量合理

资源打包的注意事项

  1. 场景资源始终有自己单独的包

    当一个可寻址包中有场景资源和普通资源时,场景资源和其它资源始终会被分开打包
    也就是说,该组一定会生成两个包(即使Bundle Mode选择的是Pack Together ),一个场景的,一个其它资源的

  2. 资源依赖的注意事项

    如果资源a和资源b都使用了资源c,但是资源a和b是可寻址资源但不在一个组中,而c不是可寻址资源
    那么这时资源c分别会被打进a和b的包,相当于这时的c就被重复利用了,浪费了空间
    较好的解决方案是:将c也作为可寻址资源, a-A包 b-B包 c-C包
    这时c不会被打进A、B包,A、B包只会依赖于C,而Addressables​会自动帮助我们处理依赖问题

    注意:在使用图集时,尤为要注意这个问题,当不同包中内容使用同一个图集中图片时,
    建议大家将图集也作为可寻址资源,并且有专门的一个图集包,让其它使用图集中图片的对象会对该图集包产生依赖

  3. 合理安排可寻址资源分组

    同类型,同作用放一起, 比如:角色组、怪物组、武器组、衣服组、登录UI组、装备UI组、音效组、可变贴图组、图集组等等

  4. 关于包的数量(分组的数量)

    要根据实际情况来对资源进行布局,包(分组)过多、包(分组)过大都不太好, 要根据自己的实际情况进行组的安排