【Unity】打包(三)

2018-09-21  本文已影响12人  hellokazhang

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文件夹在某些情况下很有用,如果内容是:

2.3 Resources的序列化

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读