Unity3d 开发(七)AssetBundle组织文件夹

本文探讨怎样配置一个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中区分不同的文件。

DLC适配

假设须要为资源设置多种模型、材质、贴图匹配。就要更改Variant的配置。所以就须要将资源单分成一个包,并为其指定变量类型。

结论

综上所述,打包的文件夹结构应该是为

  • 预设文件单独指定包。
  • 资源文件夹假设不需区分DLC则不用处理。

    如需区分资源要整文件夹打包。并设置变量。然后在加载时更改AssetBundleManager.ActiveVariants

原文地址:https://www.cnblogs.com/yjbjingcha/p/7191720.html