Unity3D:同时导入资源

推荐:将NSDT场景编辑器加入你的3D工具链
3D工具集:NSDT简石数字孪生

同时导入资源

默认情况下,Unity 在主编辑器进程中按顺序依次导入资源。但是,Unity 还支持并行导入某些类型的资源。并行导入使用多个进程同时导入资源,这比默认的顺序导入方法更快。

要启用并行导入,请转到编辑器>编辑>项目设置,然后在“资源管线”部分下,启用“并行导入”复选框。

“项目设置”窗口中的“并行导入”选项。
“项目设置”窗口中的“并行导入”选项。

平行进口的范围

Unity 的并行导入功能仅支持某些类型的资源。仅当编辑器执行其标准资源数据库刷新时,它才适用,当编辑器在 Project 文件夹中检测到新的或修改的资源并自动导入它们时,就会发生这种情况。

Unity 可以并行导入的特定资源类型包括:

  • 纹理导入器导入的图像文件类型
  • 模型导入程序导入的模型文件类型

其他类型的资产始终在资产数据库刷新期间按顺序导入。

某些资产数据库 API 方法也遵循此设置,如果您使用它们来导入、刷新或创建纹理或模型资源。这些是:

  • 资产数据库导入
  • AssetDatabase.Refresh
  • AssetDatabase.CreateAsset

对脚本导入程序的影响

由于并行导入在单独的进程中运行,因此脚本导入程序代码的任何副作用也会在该进程中生效,而不是在主编辑器进程中生效。在单独的进程上运行的副作用可能会导致意外问题。例如,如果在工作线程上导入期间修改 C# 类上的静态变量,则该修改不会自动对编辑器主线程上运行的代码可见。

为导入而编写的任何代码都应始终是自包含的、确定性的,并且不应更改其运行的上下文(例如,它不应更改编辑器设置或在磁盘上创建新资产)。遵循这些规则有助于导入程序代码避免并行线程问题。它还可确保导入结果始终一致,并且编辑器始终使用缓存的工件,而不是不必要地重新导入资源。

控制导入工作进程

在“资源管线”设置中,有三个设置可用于控制导入工作进程的行为。这些设置是特定于项目的。

导入工作进程控制在“项目设置”窗口中。
导入工作进程控制在“项目设置”窗口中。

导入工作进程控制在“项目设置”窗口中。

设置名称描述
所需的导入工作器计数导入管道认为并行运行的最佳数量的导入工作进程数。
备用导入工作线程计数要保留的最小工作进程数,即使它们处于空闲状态。

如果工作进程数超过此数量,Unity 将关闭已空闲一段时间的导入工作进程,以释放系统资源。此属性允许您管理 Unity 在某些进程空闲时如何平衡系统资源,与启动新的导入工作进程所需的时间相比。

如果您经常迭代模型、动画或纹理工作,因此经常导入成批的模型或图像文件,则通过增加此值可能会提高导入性能。
空闲导入工作器关闭延迟在关闭空闲辅助角色之前等待的时间量(以秒为单位)。

您还可以控制 Unity 为新项目设置所需导入工作线程计数的默认值。为此,请转到首选项>资产管道>导入工作人员计数百分比

“首选项”窗口中的“导入程序工作人员计数百分比”设置。
“首选项”窗口中的“导入程序工作人员计数百分比”设置。

“首选项”窗口中的“导入程序工作人员计数百分比”设置。

创建新项目时,Unity 使用“导入工作线程计数百分比”值将项目的“所需导入工作线程计数”值分配给系统上可用逻辑内核数的百分比。

例如,如果您的系统有 16 个逻辑内核,并且此首选项设置为 25%,则新项目的所需导入工作线程计数为 4。如果将此值设置得太高,则导入工作进程需要争用其他进程和系统资源,例如读取和写入文件。默认值 25% 适用于大多数情况。

此文由3D建模学习工作室整理翻译,转载请注明出处!

上一篇:Unity3D:导入资源 (mvrlink.com)

下一篇:Unity3D:支持的资源类型 (mvrlink.com)

NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号