美文网首页
【Unity】打包(三)

【Unity】打包(三)

作者: hellokazhang | 来源:发表于2018-09-21 23:53 被阅读12次

Resources目录

这篇文章主要讨论Resources系统。这是一个允许开发者存储一个或多个文件或文件夹在Resources文件夹下,在运行时使用Resources API进行加载或卸载的系统。

2.1 Resources最佳实践

不要使用:
强烈建议不要使用的原因:

  1. 使用Resources文件夹造成密集内存更加难管理
  2. 不恰当的使用Resources文件夹会造成应用启动时间和打包时间延长。随着Resources中的文件夹的增加,Assets管理将会变得更加困难。
  3. Resources系统降低了项目分发自定义内容到其他平台的能力,消除了增量更新文件的可能性。AssetBundle变体是Unity管理每个设备内容的主要工具。

2.2 适当的使用Resources系统

有两个特殊的用途,可以帮助开发者更好的开发应用:

  1. Resources的简易性对于快速原型开发很有好处。但随着项目的不断完善,快速迭代的时候,这时应该减少或避免使用Resources
  2. Resources文件夹在某些情况下很有用,如果内容是:
  • 整个项目生命周期都在使用的
  • 非内存密集
  • 不需要热更或跨平台不会变化的
  • 启动时用到的小资源
    第二种情况包括main预设的MonoBehaviour脚本,或包含第三方配置数据的ScriptableObjects,比如Facebook App ID。

2.3 Resources的序列化

当项目打包的时候,Resources下的所有Assets和Objects会打进一个序列化文件。这个文件包括metadata和索引信息,类似AssetBundle。正如AssetBundle documentation这里所说的,索引包括一个序列化查找树,使用对象名可以解析为相应的File GUIDLocal ID。也可以根据偏移字节找到序列化文件中的Object

在大多数平台,查找数据结构是时间复杂度为O(nlog(n))的平衡二叉树。随着Resources文件夹中Objects的增多,索引时间的增加会超过线性增长。

应用启动时,非交互性闪屏的播放是不可跳过的。观察初始化一个包含10000个assetsResources初始化时需要消耗多少秒,尽管Resources文件夹中只有少量的Asset在第一个场景中使用。

相关文章

网友评论

      本文标题:【Unity】打包(三)

      本文链接:https://www.haomeiwen.com/subject/lsctoftx.html