unity打包AssetBundle包的几种压缩方式介绍

  Unity资源打包目的就是把一部分游戏资源或是需要热更的资源从游戏安装包中分离出来,降低安装包的大小,在热更或加载资源时再从服务器下载所需资源,当然已经下载的资源和不需要更新的资源不需要重复下载,Unity的打包可以也只能在unity的编辑器下进行,比如可以用unity提供的接口如下面代码所示:

public static AssetBundleManifest BuildAssetBundles(string outputPath, BuildAssetBundleOptions assetBundleOptions, BuildTarget targetPlatform);

  这个方法有三个参数,第一个是打包的路径,相对于游戏项目的根目录;第二个是打包压缩的方式;第三个是包的目标平台,第一个和第二个不需要多做说明,大家都能明白,主要介绍一下第二个参数几种压缩方式各有什么优劣。  

  BuildAssetBundleOptions.None:使用LZMA算法压缩,压缩的包更小,但是加载时间更长。使用之前需要整体解压。一旦被解压,这个包会使用LZ4重新压缩。使用资源的时候不需要整体解压。在下载的时候可以使用LZMA算法,一旦它被下载了之后,它会使用LZ4算法保存到本地上。
  BuildAssetBundleOptions.UncompressedAssetBundle:不压缩,包大,加载快
  BuildAssetBundleOptions.ChunkBasedCompression:使用LZ4压缩,压缩率没有LZMA高,但是我们可以加载指定资源而不用解压全部。

  注意使用LZ4压缩,可以获得可以跟不压缩想媲美的加载速度,而且比不压缩文件要小。

上一篇:unity 打包原理学习


下一篇:AssetBundle包/ab包加载材质球材质丢失