unity减小包体

包体在推广上有很大的区别(国外的产品都是小于100MB),所有我们需要把包体压下来。记录一下压缩包体的情况:

  1. 把下载资源(Resources_OBB)与母包中的资源(Resources)分离。
  2. Resources_OBB进行BuildAssetBundle,每一个目录就是一个assetBundle
  3. 客户端启动下载所有的assetBundle,并WWW.LoadFromCacheOrDownload(会产生大量的cache资源)。
  4. 加载模块需要区分资源来自Resources,Resources_OBB,还是资源更新包 (分为三个模块母包,OBB包,资源更新包)

遇到的问题:


2017-01-06更新:

在上面提到的方法中,WWW.LoadFromCacheOrDownload产生了1G的缓存数据,这个有点接受不了。

后来把obb资源替换为非加密格式,客户端采用new WWW的方法读取,这种方式,我们的OBB大小是400M+,母包大小是60M,远远比我们不用OBB方法(190M+)大。显然不是最好的方式。

最后我们找到了一个更优的方案:

这种方案的数据是:

母包大小20M+,OBB大小是170M+,且不会产生缓存数据

参考 UnityOBBDownloader

aliyun