首页 > 其他分享 >AB包 热更新

AB包 热更新

时间:2022-11-20 17:23:42浏览次数:28  
标签:AB 模型 更新 资源 格式 材质 打包

什么是AB包:它是一个存在于硬盘上的文件,可以称为压缩包,这个压缩包可以是一个文件夹。

AB包的作用:将资源放到服务器上,当客户端需要的时候从服务器中获取,程序不需要重新安装。

AB包定义:Unity资源压缩包。
AB包依赖的资源:图片,文本,音频,视频,模型,动画,预制体,场景资源,脚本,可编辑脚本资源。

  • 图片支持的格式:.png,.jpg。

  • 文本支持的格式:.txt,.json,.xml。

  • 音频支持的格式:.mp3,.wav,.ogg。

  • 视频支持的格式:.avi,.mp4。

  • 模型支持的格式:.fbx,.obj。

  • 动画支持的格式:.animationClip(fbx内部动画片段)。

  • 预制体支持的格式:配置文件(包含当前游戏物体所依赖的所有组件信息)。

  • 场景资源支持的格式:配置文件(包含当前场景中所有物体的配置信息)。

  • 脚本支持的格式:C#脚本。

  • 可编辑脚本资源:.asset文件。

压缩包可以使用LZMA和LZ4压缩算法,较少包大小,更快的进行网络传输。
压缩后的资源不能直接使用,需要进行解压。

把一些要下载的内容放到AB包中可以减少安装包的大小。

资源冗余:多个包引用同一个资源但引用的资源没有打入AB包。

颗粒度:颗粒度太大会导致不太容易替换资源,过度消耗存储性能,颗粒度太小会导致降低IO读写速度,影响用户体验。

打包策略

  • 可以将资源分的很细进行打包,基于每个资源都打一个AB包。
  • 一个模块打一个AB包,可以基于文件夹进行打包。

打出来的文件

AB文件

  • CRC 资源校验
  • AssetBundleInfos 当前打出的所有的资源包

其他AB配置文件(一个命名一个AB包)

  • CRC 资源包校验码,资源包的唯一ID。
  • Hash 每次生成的资源包都会生成一个哈希值,用于做资源包的对比。
  • Asset 打入当前AB包中的所有的资源。

注意:

  • AB包的路径是小写。
  • 不标记AssetBundle是不会打到AB包中,标记相同的AssetBundle将会打到一个AB包中。
  • 多个AB包都依赖的资源一定要进行打包。(模型A和模型B依赖材质C,模型A和模型B不在同一个AB包内
    模型A和模型B进行打包,材质C没有进行打包,会导致模型A的AB包内出现材质C,模型B的AB包内出现材质C,下载的资源将会增大。
    模型A和模型B进行打包,材质C单独进行打包,模型A的AB包和模型B的AB包对材质C的AB包产生依赖关系,加载模型A的时候是要加载模型A所在的资源包和材质C所在的资源包,不会导致下载资源增加。
    模型A和模型B进行打包,材质C和模型A打到了一个AB包内,模型B所在的AB包会和材质C所在的AB包产生依赖关系,加载模型B的时候是需要加载模型B所有的资源包和材质C所在的资源包,不会导致下载资源增加。
  • 要打包的资源是需要设置后缀名的。

标签:AB,模型,更新,资源,格式,材质,打包
From: https://www.cnblogs.com/wuzhongke/p/16908968.html

相关文章