Resources文件夹解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 翻译自官网文档:https://unity3d.com/cn/learn/tutorials/topics/best-practices/resources-folder2.1。

翻译自官网文档:https://unity3d.com/cn/learn/tutorials/topics/best-practices/resources-folder

2.1。资源系统的最佳实践

不要使用它。

这个强有力的建议有几个原因:

  • 使用Resources文件夹会使细粒度的内存管理变得更加困难

  • 资源文件夹使用不当会增加应用程序启动时间和构建时间

    • 随着资源文件夹数量的增加,这些文件夹中资产的管理变得非常困难
  • 资源系统降低了项目将定制内容传送到特定平台的能力,并消除了增量内容升级的可能性

    • AssetBundle变体是Unity用于根据设备调整内容的主要工具

2.2。正确使用资源系统

在不妨碍良好开发实践的情况下,资源系统有助于两种具体用例:

  1. Resources文件夹的简易性使其成为快速原型的优秀系统。但是,当项目进入全面生产阶段时,应取消使用Resources文件夹。

  2. 如果内容是:Resources文件夹可能在一些微不足道的情况下很有用。

  • 一般在项目的整个生命周期中都需要

  • 不是内存密集型的

  • 不容易修补,或不跨平台或设备不同

  • 用于最小自举

第二种情况的例子包括用于托管预制件的MonoBehaviour单件,或包含第三方配置数据(如Facebook应用程序ID)的ScriptableObjects。

2.3。资源序列化

在构建项目时,名为“Resources”的所有文件夹中的资产和对象都合并为一个序列化文件。该文件还包含元数据和索引信息,类似于AssetBundle。如AssetBundle文档中所述,此索引包含一个序列化的查找树,用于将给定对象的名称解析为适当的文件GUID和本地ID。它也用于在序列化文件正文中的特定字节偏移处定位对象。

在大多数平台上,查找数据结构是一个平衡搜索树,其构建时间以O(n log(n))速率增长。随着资源文件夹中对象数量的增加,这种增长也会导致索引的加载时间增长超过线性。

此操作是不可跳过的,并且在显示初始非交互式启动画面时出现在应用程序启动时。据观察,初始化一个包含10,000个资产的资源系统在低端移动设备上消耗了多秒,即使资源文件夹中包含的大部分对象很少真正需要加载到应用程序的第一个场景中。

相关文章
|
12月前
MultipartFile多文件上传/通过文件夹解析所有文件
MultipartFile多文件上传/通过文件夹解析所有文件
203 0
|
Java 数据库连接 mybatis
MyBatis | 使用Resources读取资源文件流程解析
使用Resources读取资源文件流程解析
212 0
|
XML Android开发 数据格式
android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件
  简介 XStream 是一个开源项目,一套简单实用的类库,用于序列化对象与 XML 对象之间的相互转换。 将 XML 文件内容解析为一个对象或将一个对象序列化为 XML 文件。   1、下载工具 xstream   下载最新版本地址: https://nexus.
1602 0
|
内存技术 前端开发 JavaScript
|
19天前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
39 0
|
19天前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
29 0
|
19天前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
33 0
|
19天前
|
安全 Java 程序员
Collection-Stack&Queue源码解析
Collection-Stack&Queue源码解析
45 0
|
17天前
|
存储
让星星⭐月亮告诉你,HashMap的put方法源码解析及其中两种会触发扩容的场景(足够详尽,有问题欢迎指正~)
`HashMap`的`put`方法通过调用`putVal`实现,主要涉及两个场景下的扩容操作:1. 初始化时,链表数组的初始容量设为16,阈值设为12;2. 当存储的元素个数超过阈值时,链表数组的容量和阈值均翻倍。`putVal`方法处理键值对的插入,包括链表和红黑树的转换,确保高效的数据存取。
39 5
|
19天前
|
Java Spring
Spring底层架构源码解析(三)
Spring底层架构源码解析(三)

推荐镜像

更多