Version: 6000.3
语言: 中文
命令行参数
Unity Standalone Player 命令行参数

Unity 编辑器命令行参数

您可以从命令行启动 Unity 编辑器并传入参数以更改编辑器的启动方式。您还可以使用命令行从项目的 C# 执行特定方法脚本一段代码,允许您创建自己的组件、触发游戏事件、随时间修改组件属性以及以您喜欢的任何方式响应用户输入。更多信息
请参阅术语表
启动时。检查示例脚本以在启动时执行方法

注意:要使用此页面上的信息,您需要知道如何使用作系统的命令行界面来启动应用程序和运行命令行参数。

启动 Unity 编辑器时,命令行参数值的分隔符为单个空格。例如,要将窗口模式设置为无边框,请使用-window-mode borderless.

启动 Unity

若要通过命令提示符或终端启动 Unity 项目,请输入 Unity 应用程序的目录路径,然后输入-projectPath以及目标项目的目录路径。

以下说明假定 Unity 编辑器通过 Unity Hub 安装在默认位置。

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

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

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

/home/<user>/Unity/Hub/Editor/<version>/Editor/Unity -projectPath <project path>

在 Windows 上,在命令提示符中键入以下内容以启动 Unity:

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

当您以这种方式启动 Unity 时,它会收到启动时的命令和信息,这对于测试套件、自动化构建和其他生产任务非常有用。

笔记

  • 如果您使用安装在不同位置的 Unity 编辑器,请调整命令中的路径。有关如何查找编辑器的位置路径的更多信息,请参阅安装和卸载编辑器版本。

  • 在 Windows 平台上传递参数时,请确保目录路径不以单个反斜杠结尾,以防止语法错误。使用双反斜杠 () 或不使用反斜杠。例如\\

    • "C:\Program Files\Unity\Hub\Editor\<version>\Editor\Unity.exe" -projectPath "C:\MyUnityProjects\MyProject"
    • "C:\Program Files\Unity\Hub\Editor\<version>\Editor\Unity.exe" -createProject "C:\MyUnityProjects\MyProject\\"

配置参数

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

命令 详:
-createProject <pathname> 在给定路径上创建一个空项目。
-consistencyCheck 在编辑器启动时执行导入器一致性检查。默认情况下,Unity 会执行localcheck,这会强制在本地重新导入所有资产。它还检查导入是否与之前的导入不同。

注意:一致性检查模式会禁用上传到 Unity Accelerator,旨在用于测试导入器输出是否具有确定性。有关详细信息,请参阅
-consistencyCheckSourceMode.
-consistencyCheckSourceMode string 设置 Unity 比较资源导入时要检查的源。从以下值中进行选择:
  • local:强制在本地重新导入所有资源,并检查导入是否与之前的导入不同。
  • cacheserver:如果启用了 Unity Accelerator,则此选项会从缓存服务器获取资产的元数据,并比较本地结果是否与缓存服务器上的结果匹配。此选项仅重新导入缓存服务器上存在的资产。如果一致性检查成功,则保留原始导入结果,并且无需上传,因为结果是一致的并且已经缓存了。如果检查失败,则会记录一条编辑器日志消息,详细说明哪些导入失败。不上传不一致的结果,以防止缓存中毒。
有关更多信息,请参阅检查导入器的一致性
-disable-assembly-updater <assembly1 assembly2> 指定一个以空格分隔的程序集名称列表作为参数,供 Unity 在自动更新时忽略。

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

示例 1

unity.exe -disable-assembly-updater

实施例2
unity.exe -disable-assembly-updater A1.dll subfolder/A2.dll

示例 2 有两个程序集名称,一个带有路径名。示例 2 忽略A1.dll,无论它存储在哪个文件夹中,并且忽略A2.dll仅当它存储在subfolder文件夹:

如果在
-disable-assembly-updater命令行参数(或者如果您未指定程序集),Unity 会将以下消息记录给Editor.log

[Assembly Updater] warning: Ignoring assembly [assembly_path] as requested by command line parameter.”).

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

笔记
  • 如果禁用任何需要更新的程序集的更新,则可能会在编译时、运行时或两者兼而有之时收到难以跟踪的错误。
  • 此参数仅禁用 API 更新程序的 AssemblyUpdater 组件。API Updater 的 ScriptUpdater 组件仍会针对项目中的代码(包括包)运行,除非你以批处理模式运行编辑器,而没有-accept-apiupdate论点。有关详细信息,请参阅批处理模式参数
-disable-gpu-skinning 禁用图形处理单元 (GPU)蒙皮骨骼关节绑定到角色网格体或“皮肤”顶点的过程。使用外部工具(例如 Blender 或 Autodesk Maya)执行。更多信息
请参阅术语表
启动时。
-disable-playback-engines <PlaybackEngineNames> 禁用指定的播放引擎(构建模块)。

此参数可用于防止 Unity 为非目标平台生成特定于平台的元数据,从而无需卸载构建模块以获得相同的结果。

此参数对传递的参数数量没有限制。参数必须与构建模块的安装目录的名称匹配,并且区分大小写。


unity.exe -disable-playback-engines AndroidPlayer iOSSupport
-executeMethod <ClassName.MethodName>-executeMethod <NamespaceName.ClassName.MethodName> 在 Unity 打开项目后,以及可选的资产服务器更新完成后立即执行静态方法。您可以将其用于持续集成、执行单元测试、进行构建或准备数据等任务。

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

要传递参数,请将它们添加到命令行,并在函数中使用
System.Environment.GetCommandLineArgs.使用-executeMethod,您需要将封闭脚本放在 Editor 文件夹中。执行的方法必须定义为静态。
-exportPackage <exportAssetPath1 exportAssetPath2 ExportAssetPath3 exportFileName> 导出一个包,给定一个路径(或一组给定的路径)。在此示例中,exportAssetPath是要从 Unity 项目导出的文件夹(相对于 Unity 项目根目录),并且exportFileName是包名称。此选项一次仅导出整个文件夹。您通常需要将此命令与-projectPath论点。
-importPackage <pathname> 导入给定的资产包来自 Unity 项目或项目元素的文件和数据的集合,这些文件和数据被压缩并存储在一个文件中,类似于 Zip 文件,使用.unitypackage外延。资产包是共享和重用 Unity 项目和资产集合的便捷方式。更多信息
请参阅术语表
.Unity 不显示任何导入对话框。
-job-worker-count <N> 指定 Unity JobQueue 作业辅助角色计数的最大线程数。
-gc-helper-count <N> 指定资产垃圾回收器帮助程序线程的数量。默认值是可用内核数。
-logFile <pathname> 指定 Unity 写入编辑器或作系统的独立日志文件的位置。要输出到控制台,请指定路径名。在 Windows 上,使用--logfile将输出定向到stdout,默认情况下不是控制台。另请参阅-upmLogFile.
-noUpm 禁用 Unity 包管理器。
-openfile <path> 从场景或包文件的路径打开项目。或者,您可以使用-projectPath论点
-password <password> 在激活 Unity 编辑器期间在登录表单中输入密码。
-projectPath <pathname> 在给定路径处打开项目,该路径可以是绝对路径,也可以是相对于当前工作目录的路径。如果路径名包含空格,请将其括在引号中。
-quit 在其他命令执行完毕后退出 Unity 编辑器。这可以隐藏一些错误消息,但它们仍会显示在编辑器的日志文件中。这-quitargument 具有以下限制:
  • 如果编辑器连接到加速器缓存服务器,则附加参数-cacheServerWaitForUploadCompletion是防止 Unity 在待处理的缓存上传完成之前退出所必需的。
  • 如果编辑器正在使用-runTests参数,则-quit导致编辑器在正在进行的测试有机会完成之前立即退出。
  • 如果编辑器正在运行异步代码,则-quit可能会导致应用程序挂起并变得无响应。
-quitTimeout 当您使用-quit参数,编辑器等待待处理的异步任务完成,默认超时为 300 秒。使用此参数可以设置不同的超时(以秒为单位)。
-releaseCodeOptimization 启用发布代码优化模式,覆盖会话的当前默认代码优化模式。
-setDefaultPlatformTextureFormat(仅限 Android) 在导入纹理或构建项目之前,将默认纹理压缩设置为所需的格式。这样您就不必使用所需的格式再次导入纹理。可用的格式是 dxt、pvrtc、atc 等等 etc2 和 astc。启用纹理压缩目标时,将忽略此参数。
注意:PVRTC 格式已弃用。请改用 ASTC 或 ETC 格式。
-overrideMaxTextureSize 覆盖 Unity 在导入资源时应用的最大纹理大小(以像素为单位)。此设置会影响项目中的所有纹理,并覆盖纹理导入设置中为单个纹理配置的任何 最大大小(Max Size) 。该值是一个整数,表示纹理高度或宽度的最大限制,以较长者为准。纵横比图像比例尺寸的关系,例如其宽度和高度。
请参阅术语表
调整大小时始终保持。例如,如果纹理为 2048x1024像素计算机图像中的最小单位。像素大小取决于您的屏幕分辨率。像素光照是在每个屏幕像素下计算的。更多信息
请参阅术语表
-overrideMaxTextureSize设置为 512,则 Unity 将导入 512x256 像素大小的纹理。有关更多详细信息,请参阅EditorUserBuildSettings.overrideMaxTextureSize
-overrideTextureCompression 覆盖纹理压缩一种存储数据的方法,可减少所需的存储空间量。请参阅纹理压缩动画压缩音频压缩构建压缩
请参阅术语表
Unity 在导入资源时使用的设置。这在本地开发期间特别有用,可以加快纹理导入或构建目标切换。有关详细信息,请参阅EditorUserBuildSettings.overrideTextureCompression
-silent-crashes 阻止 Unity 显示独立播放器崩溃时出现的对话框。当你想在自动生成或测试中运行播放器时,此参数非常有用,因为你不希望对话提示阻碍自动化。
-upmLogFile <pathname> 指定 Unity 为独立于编辑器运行的 UPM 后台应用程序写入日志文件的路径和文件名。您可以指定-upmLogFile-logFile在同一命令中。如果同时包含这两个参数,则可以为两个日志文件指定独立路径。
-username <username> 在激活 Unity 编辑器期间,在登录表单中输入用户名。
-vcsMode <mode> 设置版本控制模式。可用模式包括"Visible Meta Files","Hidden Meta Files",PerforcePlasticSCM.您可以使用其他标志来填写给定版本控制模式的配置字段。这些标志基于 Provider.GetActiveConfigFields 方法。例如,您可以使用-vcPerforceUsername,-vcPerforcePassword,-vcPerforceWorkspace-vcPerforceServer以设置 Perforce 用户名、工作区和服务器字段。

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

注意
<mode>包含空格的参数必须用双引号 (“) 括起来。
-version 在命令行中打印 Unity 编辑器的版本号,而无需启动编辑器。
-timestamps 为每条Editor.log消息添加当前时间戳和线程 ID 的前缀。

批处理模式参数

使用以下参数配置 Unity 的批处理模式。批处理模式使 Unity 能够在没有用户输入的情况下运行预定义的任务,这使得批处理模式对于测试等自动化任务非常有用。

重要:除非受 Unity 单独商业条款的约束,否则以批处理模式使用 Unity 受 Unity 服务条款的约束,包括适用的附加条款。有关更多信息,请参阅最新版本的 Unity 服务条款附加条款,包括 Unity 编辑器软件条款

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

例:

unity.exe -accept-apiupdate -batchmode [other params]

如果您在批处理模式下启动 Unity 时省略此命令行参数,则 APIUpdater 不会运行。这可能会导致编译器错误。
-batchmode 以批处理模式运行 Unity。在批处理模式下,Unity 运行命令行参数,无需人工交互。它还禁止显示需要人工交互的弹出窗口(例如“保存场景”窗口)。使用命令行参数时,应始终以批处理模式运行 Unity,因为它允许自动化不间断地运行。

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

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

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

如果使用
-batchmode,目标平台是默认平台。要强制使用不同的平台,请使用-buildTarget选择。
‑ignorecompilererrors 使用此参数时,即使存在编译错误,Unity 也会继续启动您的应用程序。
-nographics 在批处理模式下运行此作时,Unity 不会初始化图形设备。然后,可以在没有 GPU 的计算机上运行自动化工作流。自动化工作流程仅在焦点窗口时才有效,否则无法发送模拟输入命令。-nographics不允许烘焙GI,因为Enlighten Realtime Global Illumination需要GPU来渲染Meta Pass(有关更多信息,请参阅光照贴图和着色器页面的Meta Pass部分)。
注意:在此模式下,输出日志将关闭。要启用输出日志的创建,请使用命令指定文件位置
-logFile.

构建参数

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

命令 详:
-activeBuildProfile <pathname> 将保存在给定路径上的构建配置文件设置为活动构建配置文件(例如,-activeBuildProfile "Assets/Settings/Build Profiles/WindowsDemo.asset").

笔记:
  • -activeBuildProfile <pathname>在编译之前,应用在活动生成配置文件的“生成数据”部分中找到的自定义脚本定义。这些脚本定义将添加到当前定义集中,并且不会覆盖或删除项目中的现有脚本定义。
  • 构建配置文件资产的路径必须相对于项目的根文件夹。
-build <pathName> 构建播放器activeBuildProfile <pathname>到指定的目标路径。对于某些平台,路径必须以特定于目标平台的文件扩展名结尾。例如-build path/to/your/build.exe.有关哪些平台需要扩展的信息,请参阅目标平台的构建路径要求
-buildLinux64Player <pathname> 构建一个 64 位独立的 Linux 播放器(例如-buildLinux64Player path/to/your/build).
-buildLinuxHeadlessSimulation <pathname> 构建一个 64 位 Linux 无头模拟播放器(例如-buildLinuxHeadlessSimulation path/to/your/build).
-buildOSXUniversalPlayer <pathname> 构建一个 64 位独立的 macOS 播放器(例如-buildOSXUniversalPlayer path/to/your/build.app).
-buildTarget <name> 选择一个活动的构建目标以启动编辑器。可用的选项取决于你在编辑器中启用的构建目标。这些选项对应于通过 API 枚举提供的选项BuildTarget.可能的选项包括:

win64
win
osxuniversal
linux64
android
ios
webgl
tvos
windowsstoreapps
cloudrendering
visionos

如果您是有权访问封闭平台的开发人员,您可能还有其他-buildTarget可用选项。有关详细信息,请参阅目标平台的文档。
-standaloneBuildSubtarget <name> 在加载项目之前,为独立平台选择一个活动的构建子目标。可能的选项是:

• 播放器
• 服务器
-buildWindowsPlayer <pathname> 生成 32 位独立 Windows 播放器(例如-buildWindowsPlayer path/to/your/build.exe).
-buildWindows64Player <pathname> 生成 64 位独立 Windows 播放器(例如-buildWindows64Player path/to/your/build.exe).

Unity Accelerator 缓存服务器参数

使用以下参数配置 Unity 对 Unity Accelerator 缓存服务器的使用。这些参数将覆盖存储在编辑器偏好设置中的任何相应配置。

命令 详:
-EnableCacheServer 启用 Unity Accelerator。您还必须使用-cacheServerEndpoint <host:port>以指定 Unity Accelerator 实例的地址。
-cacheServerEndpoint <host:port> 指定 Unity Accelerator 实例的终结点地址。

例:

-cacheServerEndpoint 127.0.0.1:10080
默认端口为10080但可以在安装过程中更改。
-cacheServerNamespacePrefix <prefix> 设置 Unity Accelerator 实例的命名空间前缀。将此参数与命名空间名称一起使用,以对缓存服务器上的数据进行分区,例如,隔离不同项目或 Unity 版本的缓存数据。

例:

-cacheServerNamespacePrefix MyProject_Unity23LTS
包含空格的前缀必须用双引号 () 括起来。
提供的名称用作缓存中最多 3 个命名空间的前缀,这些命名空间按类型(元数据、项目数据和着色器缓存数据)分隔数据。
"
-cacheServerEnableDownload true
-cacheServerEnableDownload false
启用或禁用从 Unity Accelerator 实例下载。
-cacheServerEnableUpload true
-cacheServerEnableUpload false
启用或禁用上传到 Unity Accelerator 实例。

例:

-cacheServerEnableUpload true
-cacheServerWaitForConnection <ms> 指定 Unity 在加载项目时等待连接到 Unity Accelerator 实例的时间(以毫秒为单位),然后再开始初始项目刷新。

例:

-cacheServerWaitForConnection 5000
-cacheServerWaitForUploadCompletion 阻止 Unity 关闭,直到任何待处理的 Unity加速器Unity 加速器是一种外部工具,它提供资产缓存,用于保存团队导入资产的副本。加速器的目标是通过协调资产共享来加快团队合作并减少迭代时间,这样您就不需要重新导入项目的某些部分。更多信息
请参阅术语表
上传完成。当 Unity Accelerator 与命令行参数结合使用时,建议这样做-quit,这会在其他脚本命令执行完毕后关闭 Unity 编辑器。
-cacheServerDownloadBatchSize <batchSize> 设置单个缓存服务器下载批处理中的工件数。下载批处理是一种优化,用于通过将单个下载分组到更大的批次来减少下载作的数量。

例:

-cacheServerDownloadBatchSize 256
默认值为128.
-cacheServerUploadExistingImports 当 Unity 开始将新导入上传到 Unity Accelerator 实例时,上传之前未上传的任何现有导入。之前上传的导入不会重新上传。
-cacheServerUploadAllRevisions 上传任何现有导入,包括资产数据库已知的所有先前修订版,这些修订版在 Unity 开始将新导入上传到 Unity Accelerator 实例时之前未上传。以前已上传的导入修订不会重新上传。
-cacheServerUploadExistingShaderCache 上传任何现有的着色器在 GPU 上运行的程序。更多信息
请参阅术语表
缓存 Unity 开始将新导入上传到缓存服务器时之前未上传的导入。以前上传的着色器导入不会重新上传。

调试参数

命令 详:
-disableManagedDebugger 禁用调试器侦听套接字。
-diag-debug-shader-compiler Unity 仅启动一个着色器编译器实例,并强制其超时为一小时。对于调试着色器编译器问题很有用。
-debugCodeOptimization 启用调试代码优化模式,重写会话的当前默认代码优化模式。
-enableCodeCoverage 启用代码覆盖率并允许访问覆盖率 API
-force-d3d12-debug 启用 DX12 验证层。这对于处理XR一个总称,包括虚拟现实 (VR)、增强现实 (AR) 和混合现实 (MR) 应用。支持这些形式的交互式应用程序的设备可以称为 XR 设备。更多信息
请参阅术语表
插件或本机插件。
-force-d3d12-debug-gbv 启用基于 DX12 GPU 的验证。这对于处理XR插件或本机插件非常有用。
-force-vulkan-layers 启用 Vulkan 验证层。这对于处理XR插件或本机插件非常有用。
-stackTraceLogType 允许详细调试。所有设置都允许选择“”、“仅脚本”和“完整”(例如,-stackTraceLogType Full).
-log-memory-performance-stats 关闭编辑器时,将详细的内存和性能报告添加到主 Unity 编辑器日志文件中。
-wait-for-managed-debugger 使编辑器在启动之前等待托管调试器附加。生成一个对话框,显示编辑器的进程 ID。有关托管调试的详细信息,请参阅在 Unity 中调试 C# 代码
-wait-for-native-debugger 使编辑器在启动之前等待原生调试器附加。生成一个对话框,显示编辑器的进程 ID。

图形 API 参数

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

命令 详:
-force-clamped 将此与-force-glcoreXY以防止 Unity 检查其他 OpenGL 扩展,从而允许它在具有相同代码路径的平台之间运行。此方法有助于确定问题是否特定于平台。例如,驱动程序错误。
-force-d3d11(仅限 Windows) 使编辑器使用 Direct3D 11 进行呈现。通常,图形 API 取决于玩家设置设置,用于为 Unity 构建的最终游戏设置各种特定于玩家的选项。更多信息
请参阅术语表
(通常默认为 D3D11) 。
-force-d3d12(仅限 Windows) 使编辑器使用 Direct3D 12 进行呈现。通常,图形 API 取决于播放器设置
-force-device-index 通过传递特定GPU的索引,使编辑器使用该GPU设备。例如,使用它来强制编辑器使用集成GPU而不是专用GPU。GPU 索引和物理 GPU 之间的映射由系统枚举 GPU 的顺序决定。此枚举通常由 GPU 驱动程序或正在使用的基础框架(例如 Metal、Direct3D 或 Vulkan)完成。通常,索引0将是连接到主显示器的 GPU。在台式计算机上,这通常是专用 GPU,而在笔记本电脑上,它通常是集成 GPU。因此,在台式计算机上-force-device-index=0通常是专用显卡。
-force-glcore 使编辑器使用 OpenGL 3/4 核心配置文件进行渲染。编辑器尝试使用可用的最佳 OpenGL 版本以及 OpenGL 驱动程序公开的所有 OpenGL 扩展。如果平台不受支持,编辑器将使用 Direct3D。
-force-glcoreXY -force-glcore,但请求特定的 OpenGL 上下文版本。XY 的可接受值:32、33、40、41、42、43、44 或 45。如果平台不支持特定版本的 OpenGL,Unity 将回退到受支持的版本。
-force-gles(仅限 Windows) 使编辑器使用OpenGL for Embedded Systems进行渲染。编辑器尝试使用可用的最佳 OpenGL ES 版本,以及 OpenGL 驱动程序公开的所有 OpenGL ES 扩展。
-force-glesXY(仅限 Windows) -force-gles,但请求特定的 OpenGL ES 上下文版本。XY 的可接受值:30、31、31aep 或 32。如果平台不支持特定版本的 OpenGL ES,Unity 将回退到受支持的版本。如果平台不支持 OpenGL ES,Unity 将回退到另一个图形 API。
-force-opengl 使编辑器使用旧版 OpenGL 后端。
-force-vulkan 使编辑器使用 Vulkan 进行渲染。通常,图形 API 取决于播放器设置

许可证参数

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

命令 详:
-createManualActivationFile 手动激活 Unity 许可证的三步流程中的第一步。有关更多信息,请参阅手动许可证激活。
-manualLicenseFile <yourulffile> 手动激活 Unity 许可证的三步流程中的第三步。有关更多信息,请参阅手动许可证激活。
-returnlicense 返回当前活动的基于串行或指定用户许可证。请勿使用-returnlicense返回浮动许可证。有关详细信息,请参阅归还您的许可证。有关许可模型的更多信息,请参阅许可概述
-serial <serial-key> 激活您的付费 Unity 许可证。包括<serial-key>值以激活基于序列的许可证,或同时激活指定用户许可证及其序列号。排除<serial-key>值来激活指定用户许可证而不激活其序列号。有关更多信息,请参阅从命令行激活许可证。有关许可模型的更多信息,请参阅许可概述

注意:当您使用
-serial参数,您还必须使用-batchmode论点。最好将-quit论点。

金属参数(仅限 macOS)

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

命令 详:
-force-low-power-device(仅限 macOS) 如果使用Metal,请让编辑器使用低功耗设备。
-force-metal 使编辑器使用 Metal 作为默认图形 API(仅限 macOS)。
-enable-metal-capture 启用从编辑器内部捕获Metal的功能。

探查器参数

使用以下参数配置 Unity 对分析器帮助您优化游戏的窗口。它显示了在游戏的各个领域花费了多少时间。例如,它可以报告渲染、动画制作或游戏逻辑所花费的时间百分比。更多信息
请参阅术语表
.

命令 详:
-deepprofiling CPU 性能分析器启用深度分析选项。
-profiler-enable 分析播放器或编辑器的启动情况。将此参数与播放器一起使用时,其效果与在构建配置文件目标平台创建构建时使用的一组可自定义配置设置。更多信息
请参阅术语表
.

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

Unity 编辑器特殊命令行参数

您只能在特殊情况下或在 Unity 支持的指示下使用这些文件。

命令 详:
-enableIncompatibleAssetDowngrade 当您有由较新的、不兼容的 Unity 版本制作的资产时,请使用该选项,并且您想要降级以与当前版本的 Unity 一起使用。启用
此功能后,Unity 会显示一个对话框,要求确认是否要打开需要降级的项目。

注意:此过程不受支持且风险很大,只能作为最后的手段使用。
-giCustomCacheLocation 设置全局照明 (GI) 缓存文件夹的自定义位置。该值必须是绝对路径,如果包含任何空格,则必须用引号括起来。如果-giCustomCacheLocation,则对于当前编辑器会话,其值将覆盖之前在 GI 缓存(GI Cache) 首选项中定义的任何自定义缓存文件夹位置(Cache Folder Location)。编辑器退出后,此值不会保留。
-rebuildLibrary 此过程将删除Libraryproject 子目录,这会触发所有资产的完全重新导入。当 Unity 在项目初始化期间报告数据库损坏错误时,请使用此选项。

Unity Hub 特殊命令行参数

您只能在特殊情况下或在 Unity 支持的指示下使用这些文件。这些参数用于默认不使用 Unity Hub 的 Unity 编辑器版本。

命令 详:
-useHub 启动具有 Hub 集成的 Unity 编辑器。
-hubIPC 启用 Unity 编辑器和 Unity Hub 之间的通信和交互。
-hubSessionId 为 Unity Hub 会话指定唯一标识符。

在所有受支持的 Unity 编辑器版本中,默认情况下已经设置了这些参数。

包中的额外编辑器参数

安装这些包时,可以使用其他编辑器命令行参数。

详:
爆裂 请参阅突发包文档。
测试框架 请参阅 Unity 测试框架包文档。
代码覆盖率 请参阅代码覆盖率包文档。

用于在启动时执行方法的示例脚本

您可以在启动时使用命令行执行项目的 C# 脚本中的特定方法。以下示例演示了 C# 脚本,以及在启动时执行该脚本中的方法的命令行参数。

项目中的示例 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\Hub\Editor\<version>\Editor\Unity.exe" -quit -batchmode -projectPath "C:\Users\UserName\Documents\MyProject" -executeMethod
MyEditorScript.PerformBuild

macOS作系统:

/Applications/Unity/Hub/Editor/<version>/Unity.app/Contents/MacOS/Unity -quit -batchmode -projectPath ~/UnityProjects/MyProject -executeMethod
MyEditorScript.PerformBuild

注意:在编辑器路径中,将<version>替换为您要启动的 Unity 版本,或者如果您的 Unity 编辑器路径不是默认路径,则完全替换路径。

命令行参数
Unity Standalone Player 命令行参数