本文探讨如何配置一个AssetBundle更为合理。
对于结构为
的目录结构,其中shared是Hero目录下需要用到的公用资源,即公有依赖。可采用如下的打包策略
将整个100001目录标记为一个包,打包完成后它将依赖shared。
Assets:
- Assets/Characters/Hero/100001/Model/Materials/bianshi_w.mat
- Assets/Characters/Hero/100001/Model/Materials/bianshi_01.mat
- Assets/Characters/Hero/100001/Model/bianshi_01.jpg
- Assets/Characters/Hero/100001/Model/100001.FBX
- Assets/Characters/Hero/100001/100001.prefab
- Assets/Characters/Hero/100001/override.overrideController
- Assets/Characters/Hero/100001/Model/bianshi_w.JPG
Dependencies:
- AssetBundles/Android/shared
大小为120k,shared为4K
将用到的预设标记为一个包,其他资源自动依赖。
Assets:
- Assets/Characters/Hero/100001/100001.prefab
Dependencies:
- AssetBundles/Android/shared
大小为117k,shared为4K
可见当包中文件多时,是会增加大小的。我比照了载入文件,它们完全一致。我可以推测多出来的字节数应该为文件标识,即为了能够根据不同的名字找到资源,需要承担存储标签的开销。
所以结论是:在无需区分文件时,尽量不要在Bundle中区分不同的文件。
如果需要为资源设置多种模型、材质、贴图匹配,就要更改Variant
的配置。所以就需要将资源单分成一个包,并为其指定变量类型。
综上所述,打包的目录结构应该是为
AssetBundleManager.ActiveVariants
原文:http://blog.csdn.net/fansongy/article/details/50541666