AssetBundleExtractor
其实前面几章已经介绍完毕了AssetBunlde功能。但AssetBundle稍不注意,就会留下难忘的踩坑回忆。所以先推荐AssetBundleExtractor这个工具,能够查看AssetBundle内到底有哪些资源,让不良资源无所遁形。效果如图:
AssetBundle依赖打包
打包时收集依赖
在Unity5-ABSystem(二):AssetBundle导出中,我们提到打包有一个BuildAssetBundleOptions,其实它还有藏了一个选项,即BuildAssetBundleOptions.CollectDependencies。在Unity5中这一项是默认开启的,代表会自动收集所选资源的依赖资源。例如一个prefab中引用到了一张图片,Unity5会自动将该图片也一并打包,避免因资源遗漏导致关联丢失的情况出现。
这个特性十分的方便,我们只需要将所有东西都制成prefab,将prefab作为资源指定给AssetBundle,由Unity自己去收集所用到的资源就好了。但实际项目中仅仅如此是不够的,原因在复用的资源上。
如果多个prefab使用到了同一个资源,会出现什么情况呢?我们来试验一下。
UI打包测试
4个Sprite,从1-4大小分别是1.2M, 104.2K, 59.7K, 2.3K
7个prefab,其中None代表空的canvas,Image代表canvas下有空的Image,其他数字每一位代表canvas