Resources文件夹解析

2018-04-11  本文已影响57人  su9257_海澜

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

2.1。资源系统的最佳实践

不要使用它。

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

2.2。正确使用资源系统

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

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

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

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

2.3。资源序列化

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

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

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

上一篇下一篇

猜你喜欢

热点阅读