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

  • 相关阅读:
    .netcore下Dapper helper类
    C#各版本新增加功能(系列文章)
    MySQL 查询连续登陆7天以上的用户
    MySQL 8.0版本 自动排序函数dense_rank() over()、rank() over()、row_num() over()用法和区别
    MYSQL 查看锁的方式
    MYSQL 回表查询原理,利用联合索引实现索引覆盖
    ES查询某个字段分词结果
    maven 安装和配置
    Java 注解
    Java 异常
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7191720.html
Copyright © 2011-2022 走看看