本文内容主要翻译自下面这篇文章

https://unity3d.com/cn/learn/tutorials/topics/best-practices/guide-assetbundles-and-resources?playlist=30089  A guide to AssetBundles and Resources

第二部分 Resources文件夹

这部分讨论Resources系统。这个系统允许开发者在一个或者多个Resources目录里面存储Asset,并能够使用Resources API在运行时加载和卸载Objects。

1.1  Resources系统的最佳实践

最佳实践就是不要使用它。

这个强烈的建议理由如下:

  1. 使用Resources文件夹使得内存管理更加困难。
  2. 不正确的使用Resources文件夹会使得项目编译发布和发布后的应用程序启动时间变长。
  3. 随着Resources文件夹的增多,管理里面的Assets变得困难。
  4. Resources系统降低了发布平台独立的定制内容的能力,并且使得增量内容更新变得不可能。
  5. AssetBundle变量是unity的发布针对不同设备可定制内容的主要工具。

1.2  Resources系统的正确使用

Resources系统有两个特殊的使用案例而不与最佳实践相冲突

  1. Resources系统非常适于快速开发原型和实验,因为他非常简单易用。当项目推进到完整产品时,强烈建议排除掉Resources文件夹。
  2. Resources文件夹适合一些琐碎的资源,比如Resources文件夹里面的资源都是很小,或者整个项目生命周期都需要。这些内容都不需要打补丁。也即跨平台和设备时都不会变化。

适合第二种情况的例子比如有全局用的预制品,上面挂载一些单例MonoBehaviour脚本。或者是第三方配置资源,比如FaceBook App ID。

2.3  Resources序列化

当项目编译的时候所有Resources目录下的Asset都被序列化进一个文件。这个文件和AssetBundle一样也包含meta数据和索引信息。索引信息包含object名字到GUID和localID的查找树。也用来定位一个对象在文件内的字节偏移等信息。

查找树在大部分的平台上是平衡树。她的构造时间是O(Nlog(n)),n是Object数量。数量的增长造成加载时间不是线性增长。

当应用启动时,这个操作是不能跳过的。在很慢的移动设备上面初始化一个包含10000个资源的resource系统,可以观察到会消耗好多秒,虽然这些文件大部分都不需要加载到第一个关卡里面。

Unity AssetBundles and Resources指引 (二) Resources文件夹的更多相关文章

  1. Springboot 项目 无法读取resources下的mapper文件夹的.xml文件

    之前学习的时候遇到的一个问题 org.springframework.beans.factory.BeanCreationException: Error creating bean with nam ...

  2. Hadoop入门进阶步步高(二)-文件夹介绍

    二.Hadoop文件夹结构 这里重点介绍几个文件夹bin.conf及lib文件夹. 1.$HADOOP_HOME/bin文件夹 文件名 说明 hadoop 用于运行hadoop脚本命令,被hadoop ...

  3. Unity 需不需要再建Assets文件夹

    不需要,默认所有文件都是在Assets文件夹下创建的,看不到是因为设置了单栏模式,开启双栏模式就能看到了.

  4. Unity 特殊文件夹 Assets Resources StreamingAssets Editor Plugins......

    AssetsAssets文件夹是unity项目中放置游戏资源的主文件夹. 该文件夹中的内容将直接反应在编辑器的Project视口中.许多系统API基于该文件夹路径. ResourcesUnity允许你 ...

  5. 解决eclipse maven工程中src/main/resources目录下创建的文件夹所显示样式不是文件夹,而是"包"图标样式的问题

    参考:http://blog.csdn.net/luwei42768/article/details/72268246 eclipse项目中创建maven项目后,有时在执行命令maven update ...

  6. Unity 所有特殊文件夹

    1.Editor 2.Editor Default Resources Editor Default Resources注意中间是有空格的,它必须放在Project视图的根目录下,如果你想放在/xxx ...

  7. Unity3D_10_文件夹目录架构

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

  8. Android读取asserts和raw文件夹下的文件

    Android读取asserts和raw文件夹下的文件 经常需要用到读取“/res/raw”和"/asserts"文件夹下的文件,索性写成工具类方便以后使用. 一.raw文件夹下的 ...

  9. iOS创建、删除文件夹、获取沙盒路径

    1.获取沙盒路径 // 获取沙盒路径 NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent: ...

  10. CodeSmith使用总结--下拉列表和文件夹对话框属性

    上一篇有点短了,因为实在没有什么可说的,这一篇会多一点.O(∩_∩)O~ 一.下拉列表 关于如何在CodeSmith中创建一个下拉列表的属性框其实很简单,是要使用C#中的枚举就行了,看操作. 首先定义 ...

随机推荐

  1. sql 操作,

    SELECT * FROM dbo.tbl_Web_Photos AS pt LEFT JOIN dbo.tbl_Web_Friends AS fd ON pt.user_email=fd.AddEm ...

  2. jQuery实现登录提示

    实现效果:将鼠标聚焦到邮箱地址文本框时,文本框 内的"请输入邮箱地址"文字将被清除:   若没有输入任何内容,鼠标移除后邮箱地址文本框被还原. <!DOCTYPE html& ...

  3. idea系列新版注册模式

    http://idea.qinxi1992.cn/ 楼上被列入黑名单,用 http://114.215.133.70:41017/

  4. C4.5决策树算法概念学习

    数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性的信息的过程. •分类和聚类 •分类(Classification)就是按照某种标准给对象贴标签,再根据标签来区分归类,类别数不变. • ...

  5. [物理学与PDEs]书中出现的向量公式汇总

    P 11 1. $\rot (\phi{\bf A})=\n \phi\times{\bf A}+\phi\ \rot{\bf A}$. 2. $-\lap {\bf A}=\rot\rot {\bf ...

  6. DEV--GerdView控件

    1.遍历 ; i < gridView1.RowCount; i++) { ; j < gridView1.Columns.Count; j++) { object val = gridV ...

  7. c语言知识(1)

    用freopen重定向输入 freopen函数以指定模式重新指定到另一个文件,模式用于指定新文件的访问方式. FILE *freopen(const char * restrict filename, ...

  8. Mac下安装JDK 6

    https://support.apple.com/kb/DL1572?viewlocale=zh_CN&locale=en_US 下载 , 安装

  9. python数据分析师面试题选

    以下题目均非原创,只是汇总 python数据分析部分 1. 如何利用SciKit包训练一个简单的线性回归模型 利用linear_model.LinearRegression()函数 # Create ...

  10. English Notes

    1. Thanks for stopping by.慢走不送. 2. I don't like to judge a book by it's cover.我不喜欢以貌取人. 3. Rush hour ...