本文探讨怎样配置一个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

Unity3d 开发(七)AssetBundle组织文件夹的更多相关文章

  1. PHPCMS V9二次开发便捷自定义后台入口文件夹

    phpcms v9二次开发便捷自定义后台入口文件夹 最新发布的phpcms v9由于采用了mvc的设计模式,所以它的后台访问地址是固定的,虽然可以通过修改路由配置文件来实现修改,但每次都修改路由配置文 ...

  2. Unity3d各平台资源路径文件夹

    之前一直是PC项目,公司终于考虑移动平台了,但是试验了几把,感觉移动平台资源管理路径还是有很多隐藏的注意事项. 比如在PC上可以做到随便读写,但是在移动平台就涉及到权限问题. 看到小伙伴的总结,还是要 ...

  3. Unity3d中所有特殊的文件夹

    1.Editor Editor文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以.比如目录:/xxx/xxx/Editor  和 /Editor 是一样的,无论多少个叫Editor的 ...

  4. Unity3D引擎中特殊的文件夹

    Editor Editor文件夹可以在根目录下,可以在子目录里,只要名是Editor就可以./xxx/xxx/Editor  和 /Editor 是一样的,多少个叫Editor的文件夹都可以.Edit ...

  5. Unity3D开发七惑

    使用Unity3D开发也有大半年了,心中存惑如下,愿与各位开发者一起探讨: (1)  远离普适编程之惑 随着游戏引擎的不断发展,游戏程序员的开发层级也越来越高,以unity3d尤为突出.如果是进行We ...

  6. Android开发手记(21) 遍历文件夹

    我们在遍历文件夹的时候由于涉及到SD卡相关操作,所以我们需要添加如下权限: <uses-permission android:name="android.permission.WRIT ...

  7. NX二次开发-UFUN打开选择文件夹对话框UF_UI_create_filebox

    #include <uf.h> #include <uf_ui.h> #include <string> using namespace std; string O ...

  8. NX二次开发-弹出选择文件夹对话框

    这个UFUN和NOPEN里没有对应的函数和类,要用C++的方法去做. #include "afxdialogex.h"//弹出选择文件夹对话框头文件 #include " ...

  9. 如何组织较大项目的MVC文件夹结构

    现在还用不到,拷贝下来备用,原文链接 2016 年 9 月 第 31 卷,第 9 期 ASP.NET Core - ASP.NET Core MVC 的功能切分 作者 Steve Smith | 20 ...

随机推荐

  1. unity 获取UGUI中的Text字的坐标

    using System.Collections; using UnityEngine; using UnityEngine.UI; public class TextMoveHelper : Mon ...

  2. Set&Map区别Array

    Set&Map区别Array 在Set内部,两个NaN是相等.两个对象总是不相等的.可以用length来检测 四个操作方法: add(value):添加某个值,返回Set结构本身. delet ...

  3. JS中Math函数基础

    Math 是数学函数,但又属于对象数据类型 typeof Math => ‘object’

  4. 分库代价高的情况下,如何优化ES解决亿级数据量检索

    数据平台已迭代三个版本,从一开始遇到很多常见的难题,到现在终于有片段时间整理一些已完善的文档,在此分享以供所需朋友的实现参考,但愿能帮助大家少走些弯路,在此篇幅中偏重于ElasticSearch的优化 ...

  5. ASP.NET-ActionResutlt

    @RenderPage("Page_part1"); 上面的这种写法是错误的应该是 @RenderPage("Page_part1.cshtml"); // 要 ...

  6. 【转载】Select函数实现原理分析

    Select函数实现原理分析 <原文> select需要驱动程序的支持,驱动程序实现fops内的poll函数.select通过每个设备文件对应的poll函数提供的信息判断当前是否有资源可用 ...

  7. linux中sed的使用方法具体解释(对行数据的加入、删除等)

    sed使用语法 [root@fwq test]# sed --help 使用方法: sed [选项]... {脚本(假设没有其它脚本)} [输入文件]... -n, --quiet, --silent ...

  8. BZOJ 1007: [HNOI2008]水平可见直线 平面直线

    1007: [HNOI2008]水平可见直线 Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则 ...

  9. m_Orchestrate learning system---九、在无法保证是否有图片的情况下,如何保证页面格式

    m_Orchestrate learning system---九.在无法保证是否有图片的情况下,如何保证页面格式 一.总结 一句话总结:都配上默认缩略图就可以解决了 1.如何获取页面get方式传过来 ...

  10. ES不设置副本是非常脆弱的,整个文章告诉了你为什么

    Delaying Shard Allocation As discussed way back in Scale Horizontally, Elasticsearch will automatica ...