AssetBundle打包策略

AssetBundle的用途

AB包是把指定的资源打包压缩后可以在Unity中动态的进行加载,AB包主要是用在热更时更新资源的,

打包策略的原因

AssetBundle打包的资源是存在依赖关系的,你打包了这个资源依赖于另一个资源他会自动的把依赖资源也打进这个包,如果不注意打包的策略,就会发生同一个资源被重复的打包,产生资源冗余,比如你要把不同的UI类型分开打包,他们都会把自己使用的图集都打到AB包中,这样直接进行打包,那这个贴图就会被打入AB包两次,很浪费资源,所以在打包的时候要注意打包策略

基本的打包策略

  • UI公用资源包打成一个包
  • 模型动画可以根据角色来分开打包
  • 特效部分可以打入一个包里
  • 声音部分可以打到一个包里

收集依赖关系

打包前先使用AssetDatabase.CollectDependencies遍历所有资源收集他们间的依赖关系,在后面打包的时候按照每个资源被依赖的深度进行分级,先打包级别较低的,如shader,script这些资源被其他资源依赖但不会依赖别的资源,级别最低。如prefab依赖前面的所有资源,级别最高,放在最后打包。一般是按照资源的类型(prefab,mesh,animator,texture,script…)进行分级。即使这样按类型分好级后仍是不够的,因为同一级的资源也有可能产生相互依赖的关系。比如使用NGUI,一个面板prefab依赖于几个挂UIAtlas的prefab,这种同级的依赖需要用深度优先遍历对他们进行排序以确定依赖关系。这个依赖关系使用序列化文件记录下来,供后面加载包的时候先加载所有被依赖的包使用。每次更新的时候这个依赖关系的序列化文件也要同其他资源一起更新。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值