Unity3D编辑器命令行参数

Unity3D编辑器命令行参数

在线工具推荐:3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器

Unity 编辑器命令行参数

启动统一

在 macOS 上,在终端中输入以下命令来启动 Unity:

/Applications/Unity/Hub/Editor/<version>/Unity.app/Contents/MacOS/Unity -projectPath <project path>

在 Linux 上,在终端中键入以下内容以启动 Unity:

/Applications/Unity/Hub/Editor/<version>/Unity.app/Contents/Linux/Unity -projectPath <project path>

在 Windows 上,在命令提示符下输入以下命令来启动 Unity:

"C:\Program Files\Unity\Hub\Editor\<version>\Editor\Unity.exe" -projectPath "<project path>"

当您像这样启动 Unity 时,它会在启动时接收命令和信息,这对于测试套件、自动生成和其他生产任务非常有用。

配置参数

您可以在启动时使用其他命令和信息运行编辑器并构建 Unity 应用程序。本页列出了可用于启动和配置 Unity 编辑器实例的命令行参数。

命令详细信息:
-createProject <pathname>在指定路径中创建一个空项目。
-disable-assembly-updater <assembly1 assembly2>指定一个以空格分隔的程序集名称列表作为参数,以便 Unity 在自动更新时忽略。

以空格分隔的程序集名称列表是可选的:传递命令行选项而不带任何程序集名称以忽略所有程序集,如示例 1 所示。

示例 1


示例 2
示例 2

有两个程序集名称,其中一个带有路径名。示例 2 忽略 ,无论它存储在哪个文件夹中,并且仅当它存储在文件夹下时才忽略:

如果在命令行参数中列出程序集(或者如果未指定程序集),Unity 会将以下消息记录到 Editor.log



使用它可避免导入程序集时不必要的 API 更新程序开销。

如果要导入访问不需要更新的 Unity API 的程序集,则此参数非常有用。当您导入不访问任何 Unity API 的程序集时(例如,如果您在 Unity 外部构建了部分或全部源代码,并且想要将生成的程序集导入到 Unity 项目中),这也很有用。

注意: 如果禁用任何需要更新的程序集的更新,则可能会在编译时和/或运行时收到难以跟踪的错误。
unity.exe -disable-assembly-updaterunity.exe -disable-assembly-updater A1.dll subfolder/A2.dllA1.dllA2.dllsubfolder-disable-assembly-updater[Assembly Updater] warning: Ignoring assembly [assembly_path] as requested by command line parameter.").
-disable-gpu-skinning在启动时禁用图形处理单元 (GPU) 外观。
-executeMethod <ClassName.MethodName>  -executeMethod <NamespaceName.ClassName.MethodName>Unity 打开项目后,以及可选的资源服务器更新完成后,立即执行静态方法。您可以将其用于持续集成、执行单元测试、进行生成或准备数据等任务。

要从命令行进程返回错误,请引发导致 Unity 以返回代码 1 退出的异常,或使用非零返回代码调用 EditorApplication.Exit

要传递参数,请将它们添加到命令行并使用 在函数中检索它们。要使用 ,您需要将封闭脚本放在编辑器文件夹中。执行的方法必须定义为静态。
System.Environment.GetCommandLineArgs-executeMethod
-exportPackage <exportAssetPath1 exportAssetPath2 ExportAssetPath3 exportFileName>导出给定路径(或一组给定路径)的包。在此示例中,是要从 Unity 项目导出的文件夹(相对于 Unity 项目根目录),并且是包名称。此选项一次仅导出整个文件夹。通常需要将此命令与参数一起使用。exportAssetPathexportFileName-projectPath
-importPackage <pathname>导入给定的资产包。Unity 不显示任何导入对话框。
-job-worker-count <N>指定 Unity 作业队列作业辅助角色计数的最大线程计数。您还可以将此值设置为 Unity 独立播放器。job-worker-count=<N>boot.config
-logFile <pathname>指定 Unity 写入编辑器或 Windows/Linux/OSX 独立日志文件的位置。要输出到控制台,请指定 - 作为路径名。在 Windows 上,用于将输出定向到 ,默认情况下,它不是控制台。-logfile - <pathname>stdout
-noUpm禁用 Unity Package Manager。
-openfile <path>从场景或包文件的路径打开项目。或者,您可以使用参数-projectPath
-password <password>在激活 Unity Editor 期间,在登录窗体中输入密码。
-projectPath <pathname>在指定路径下打开项目。 如果路径名包含空格,请将其用引号引起来。
-quit在其他命令执行完毕后退出 Unity 编辑器。 这可能导致错误消息被隐藏(但是,它们仍会出现在 文件中)。Editor.log
-releaseCodeOptimization启用发行代码优化模式,覆盖会话的当前默认代码优化模式。
-setDefaultPlatformTextureFormat(仅限 Android)在导入纹理或生成项目之前,将默认纹理压缩设置为所需的格式。这样您就不必使用所需的格式再次导入纹理。可用的格式是dxt,pvrtc,atc等,etc2和astc。
-silent-crashes阻止 Unity 显示独立播放器崩溃时出现的对话框。如果要在自动生成或测试中运行播放器,并且不希望对话框提示阻碍自动化,则此参数非常有用。
-username <username>在激活 Unity Editor 期间,在登录窗体中输入用户名。
-vcsMode <mode>设置版本控制模式。可用模式包括 、 、 和 。您可以使用其他标志来填写给定版本控制模式的配置字段。这些标志基于 Provider.GetActiveConfigFields 方法。例如,您可以使用 、 和 来设置 Perforce 用户名、工作区和服务器字段。

注意:包含空格的参数必须用双引号 (“) 括起来。| ||设置此会话的版本控制模式。可用模式包括 、 、 和 。您可以使用其他标志来填写给定版本控制模式的配置字段。这些标志基于 Provider.GetActiveConfigFields 方法。例如,您可以使用 、 和 来设置 Perforce 用户名、工作区和服务器字段。

注意:包含空格的参数必须用双引号 (“) 括起来。
"Visible Meta Files""Hidden Meta Files"PerforcePlasticSCM-vcPerforceUsername-vcPerforcePassword-vcPerforceWorkspace-vcPerforceServer<mode>-vcsModeSession <mode>"Visible Meta Files""Hidden Meta Files"PerforcePlasticSCM-vcPerforceUsername-vcPerforcePassword-vcPerforceWorkspace-vcPerforceServer<mode>
-version在命令行中打印 Unity 编辑器的版本号,无需启动编辑器。

批处理模式参数

使用以下参数配置 Unity 的批处理模式。批处理模式使 Unity 无需额外输入即可运行预定义的任务,这使得批处理模式对于测试等自动化任务非常有用。有关详细信息,请参阅批处理模式和内置协程兼容性。

命令详细信息:
-accept-apiupdate使用此命令行选项指定在以批处理模式启动 Unity 时应运行的 APIUpdater。

示例:



如果在批处理模式下启动 Unity 时省略此命令行参数,则 APIUpdater 不会运行。这可能会导致编译器错误。
unity.exe -accept-apiupdate -batchmode [other params]
-batchmode在批处理模式下运行 Unity。在批处理模式下,Unity 无需人工交互即可运行命令行参数。它还禁止需要人工交互的弹出窗口(例如保存场景窗口);但是,Unity 编辑器本身会像往常一样打开。使用命令行参数时,应始终以批处理模式运行 Unity,因为它允许自动化不间断地运行。

当脚本代码执行期间发生异常、资源服务器更新失败或其他操作失败时,Unity 会立即退出,返回代码为 1

在批处理模式下,Unity 会将其日志输出的最小版本发送到控制台。但是,日志文件仍包含完整的日志信息。当编辑器打开同一项目时,您无法以批处理模式打开项目;一次只能运行一个 Unity 实例。

若要检查编辑器或独立播放器是否在批处理模式下运行,请使用 Application.isBatchMode 运算符。

如果在使用 时尚未导入项目,则目标平台为默认平台。要强制使用其他平台,请使用该选项。
-batchmode-buildTarget
‑ignorecompilererrors使用此参数时,即使存在编译错误,Unity 也会继续启动应用程序。
-nographics在批处理模式下运行此功能时,Unity 不会初始化图形设备。然后,您可以在没有 GPU 的计算机上运行自动化工作流。自动化工作流仅在窗口处于焦点时起作用,否则无法发送模拟输入命令。 不允许烘焙 GI,因为 Enlighten 需要 GPU 加速。-nographics

构建参数

使用以下参数从命令行为各种平台构建播放器。有关使用命令行参数构建播放器的更多信息,请参阅 Unity 独立播放器命令行参数。

命令详细信息:
-buildLinux64Player <pathname>构建 64 位独立平台 Linux 播放器(例如,)。-buildLinux64Player path/to/your/build
-buildOSXUniversalPlayer <pathname>构建 64 位独立平台 Mac OSX 播放器(例如,)。-buildOSXUniversalPlayer path/to/your/build.app
-buildTarget <name>在加载项目之前选择活动的生成目标。可能的选项包括:

• 独立 • Win
• Win64• OSXUniversal
• Linux64

• iOS
• Android
• WebGL
• WindowsStoreApps

• tvOS
-buildWindowsPlayer <pathname>构建一个 32 位独立 Windows 播放器(例如,-buildWindowsPlayer path/to/your/build.exe)。
-buildWindows64Player <pathname>构建一个 64 位独立 Windows 播放器(例如,-buildWindows64Player path/to/your/build.exe)。

缓存服务器参数

使用以下参数配置 Unity 对缓存服务器的使用。有关详细信息,请参阅缓存服务器。

命令详细信息:
-EnableCacheServer告诉 Unity 使用较新的 Accelerator 缓存服务器。 还必须使用 指定地址。-cacheServerEndpoint
-cacheServerEndpoint如果使用的是较新的加速器缓存服务器,则指定终结点地址。

例:。这将覆盖存储在编辑器首选项中的任何配置。使用此选项可将多个 Unity 实例连接到不同的缓存服务器。
-cacheServerEndpoint 127.0.0.1:10080
-cacheServerNamespacePrefix为较新的加速器缓存服务器设置命名空间前缀。用于在缓存服务器上将数据组合在一起。

示例:我的项目
-cacheServerNamespacePrefix
-cacheServerEnableDownload启用从较新的加速器缓存服务器下载。

例:
-cacheServerEnableDownload true
-cacheServerEnableUpload启用上载到较新的加速器缓存服务器。

例:
-cacheServerEnableUpload false
-CacheServerIPAddress <host:port>允许使用较旧的 (v1) 缓存服务器并指定在启动时要连接到的 IP 地址。 这将覆盖 Editor Preferences 中存储的配置。 使用此命令可将 Unity 的多个实例连接到不同 v1 缓存服务器。

调试参数

命令详细信息:
-disableManagedDebugger禁用调试器监听套接字。
-diag-debug-shader-compilerUnity 仅启动着色器编译器的一个实例,并强制其超时为 1 小时。用于调试着色器编译器问题。
-debugCodeOptimization启用调试代码优化模式,覆盖会话的当前默认代码优化模式。
-enableCodeCoverage启用代码覆盖率并允许访问覆盖率 API
-force-d3d12-debug启用 DX12 验证层。这对于处理 XR 插件或本机插件很有用。
-force-d3d12-debug-gbv启用基于 DX12 GPU 的验证。这对于处理 XR 插件或本机插件很有用。
-force-vulkan-layers启用 Vulkan 验证层。这对于处理 XR 插件或本机插件很有用。
-stackTraceLogType允许详细调试。所有设置都允许选择“”、“仅脚本”和“完全”(例如,)。-stackTraceLogType Full

图形 API 参数

使用以下参数强制 Unity 编辑器使用特定的图形 API。

命令详细信息:
-force-d3d11(仅限 Windows)使 Editor 使用 Direct3D 11 进行渲染。 通常,图形 API 取决于 Player Settings(通常默认为 D3D11)。
-force-d3d12(仅限 Windows)使 Editor 使用 Direct3D 12 进行渲染。 通常,图形 API 取决于 Player Settings
-force-glcore使编辑器使用 OpenGL 3/4 核心配置文件进行渲染。编辑器尝试使用可用的最佳 OpenGL 版本和 OpenGL 驱动程序公开的所有 OpenGL 扩展。如果平台不受支持,编辑器将使用 Direct3D。
-force-glcoreXY与 类似,但请求特定的 OpenGL 上下文版本。XY 的接受值:32、33、40、41、42、43、44 或 45。-force-glcore
-force-gles(仅限 Windows)使 Editor 使用 OpenGL for Embedded Systems 进行渲染。 Editor 会尝试使用可用的最佳 OpenGL ES 版本以及 OpenGL 驱动程序公开的所有 OpenGL ES 扩展。
-force-glesXY(仅限 Windows)与 类似,但请求特定的 OpenGL ES 上下文版本。 XY 的可接受值:30、31 或 32。-force-gles
-force-vulkan使 Editor 使用 Vulkan 进行渲染。 通常,图形 API 取决于 Player Settings
-force-clamped此命令与 一起使用以阻止 Unity 检查其他 OpenGL 扩展,允许在具有相同代码路径的平台之间运行。-force-glcoreXY

许可证参数

使用以下参数处理 Unity 许可证或使用不同的许可证选项运行 Unity 编辑器。

命令详细信息:
-createManualActivationFile手动激活 Unity 许可证的三步流程中的第一步。有关详细信息,请参阅从命令行生成许可证激活文件 (.alf)。
-force-free运行编辑器,就像计算机上有免费的 Unity 许可证一样,即使安装了 Unity Pro 许可证也是如此。
-manualLicenseFile <yourulffile>手动激活 Unity 许可证的三步流程中的第三步。有关详细信息,请参阅从命令行生成许可证激活文件 (.alf)。
-returnlicense将当前激活的许可证退回到许可证服务器。 有关更多信息,请参阅退回许可证
-serial <serial>使用指定的序列号激活您的 Unity 许可证。有关详细信息,请参阅从命令行激活许可证

注意:使用此参数时,还必须使用该参数。指定参数也是一种很好的做法。
-batchmode-quit

金属参数(仅限 macOS)

使用以下参数配置 Unity 对 Apple 设备的 Metal 图形 API 的使用。

命令详细信息:
-force-device-index使用 Metal 时,通过传递 GPU 设备的索引,让 Editor 使用特定 GPU 设备(仅限 macOS)。
-force-low-power-device(仅限 macOS)如果使用 Metal,让 Editor 使用低功耗设备。
-force-metal使 Editor 使用 Metal 作为默认图形 API(仅限 macOS)。

探查器参数

使用以下参数配置 Unity 对性能分析器的使用。

命令详细信息:
-deepprofiling CPU 性能分析器启用深度性能分析选项。
-profiler-enable分析播放器或编辑器的启动。将此参数与播放机一起使用时,它与在“生成设置”中启用了“自动连接性能分析器”选项的情况下生成播放机具有相同的效果。

将此参数与编辑器一起使用时,它会在编辑器启动时开始在“性能分析器”窗口中收集和显示性能分析器信息。
-profiler-log-file <Path/To/Log/File.raw>此参数可以设置 Unity Profiler 在启动时将性能分析数据流式传输到 .raw 文件。 对播放器和 Editor 都有效。
-profiler-capture-frame-count <NumberOfFrames>此参数可以设置在启动期间流式传输到 .raw 文件时性能分析器应该在性能分析中捕获多少帧。 仅对播放器有效。
-profiler-maxusedmemory默认情况下,Unity Profiler 的 值是 16MB(对于播放器)和 256MB(对于 Editor)。 可以在启动时使用此参数将 参数设置为自定义大小(例如,)。 此大小以字节为单位。maxUsedMemorymaxUsedMemory-profiler-maxusedmemory 16777216

示例

*项目中的 C# 脚本:*

using UnityEditor;
class MyEditorScript
{
     static void PerformBuild ()
     {
        BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions();
        buildPlayerOptions.scenes = new[] { "Assets/Scene1.unity", "Assets/Scene2.unity" };
        BuildPipeline.BuildPlayer(buildPlayerOptions);
     }
}

以下命令以批处理模式执行 Unity,执行 方法,然后在完成时退出。MyEditorScript.PerformBuild

窗户:

"C:\Program Files\Unity\Editor\Unity.exe" -quit -batchmode -projectPath "C:\Users\UserName\Documents\MyProject" -executeMethod
MyEditorScript.PerformBuild

macOS:

/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -projectPath ~/UnityProjects/MyProject -executeMethod
MyEditorScript.PerformBuild

Unity 编辑器特殊命令行参数

应该只在特殊情况下或者在 Unity 支持人员的指导下使用这些命令行参数。

命令详细信息:
-enableIncompatibleAssetDowngrade当您拥有由较新的、不兼容的 Unity 版本制作的资源时,请使用此选项,并且您希望降级以使用当前版本的 Unity。启用此功能后,Unity 会显示一个对话框,要求您在尝试打开需要降级的项目时确认此降级。

注意:此过程不受支持且风险很高,只能作为最后的手段使用。

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

上一篇:Unity3D:安全模式 (mvrlink.com)

下一篇:Unity3D:Unity 独立播放器命令行参数 (mvrlink.com)

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