默认情况下,Unity 会在主编辑器进程中依次导入资源。但是,Unity 也支持某些类型资源的并行导入。并行导入使用多个进程同时导入资源,这比默认的顺序导入方法更快。
要启用并行导入,请转到编辑 > 项目设置 > 编辑器,然后在资源管道部分,启用并行导入复选框。
Unity 的并行导入功能仅支持某些类型的资源。它仅在编辑器执行其标准资源数据库刷新时应用,当它检测到项目文件夹中存在新的或修改的资源并自动导入它们时,就会发生这种情况。
Unity 可以并行导入的特定资源类型为
其他类型的资源在资源数据库刷新期间始终按顺序导入。
如果您使用它们来导入、刷新或创建纹理或模型资源,则某些资源数据库 API 方法也会尊重此设置。这些是
由于并行导入在 Unity 编辑器的单独工作程序实例中运行,因此处理纹理或模型导入的任何资源后处理器也将在此实例中生效,而不是在主编辑器进程中。
这些处理器的任何副作用都可能导致意外问题。例如,如果您在后处理执行期间修改 C# 类中的静态变量,则该修改不会影响在编辑器中运行的代码。
您为后处理器编写的任何代码都应始终是自包含的、确定性的,并且不应更改其运行的上下文。例如,它不应更改编辑器设置或在磁盘上创建新的资源。
遵循这些规则有助于您的处理器代码避免并行线程问题,并确保结果始终一致。
在资源管道设置中,有三个设置允许您控制导入工作程序进程的行为。这些设置是特定于项目的。
属性名称 | 描述 |
---|---|
所需的导入工作程序数量 | 导入管道认为并行运行的最佳工作程序进程数量。 |
待机导入工作程序数量 | 即使空闲也要保留的工作程序进程的最小数量。 如果工作程序进程超过此数量,Unity 会关闭一段时间内处于空闲状态的导入工作程序,以释放系统资源。此属性允许您管理 Unity 在某些进程空闲时如何平衡系统资源,以及启动新的导入工作程序进程所需的时间。 如果您经常迭代模型、动画或纹理工作,并且因此经常导入批量的模型或图像文件,则通过增加此值可能会提高导入性能。 |
空闲导入工作程序关闭延迟 | 关闭空闲工作程序之前等待的秒数。 |
您还可以控制 Unity 为新项目设置的所需的导入工作程序数量的默认值。为此,请转到首选项 > 资源管道 > 导入工作程序数量 %。
创建新项目时,Unity 会使用导入工作程序数量 %值将项目的所需的导入工作程序数量值分配给系统上可用逻辑内核数量的百分比。
例如,如果您的系统有 16 个逻辑内核,并且此首选项设置为 25%,则新项目的所需的导入工作程序数量为 4。如果将此值设置得太高,则您的导入工作程序进程需要与其他进程和系统资源(如读取和写入文件)竞争。默认值 25% 适用于大多数情况。