zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    BZOJ4245: [ONTAK2015]OR-XOR(前缀和)
    [HDU 4433]locker[DP]
    近期刷题的c语言总结。
    《BackboneJS框架的技巧及模式》(4)完结篇
    x+2y+3z=n的非负整数解数
    [置顶] 程序员看婚姻
    BNU29368:Check the Identity(栈)
    Python解决codeforces ---- 1
    带你走进EJB--MDB实现发送邮件(3)
    JIRA简介
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7191720.html
Copyright © 2011-2022 走看看