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-updater unity.exe -disable-assembly-updater A1.dll subfolder/A2.dll A1.dll A2.dll subfolder -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 项目根目录),并且是包名称。此选项一次仅导出整个文件夹。通常需要将此命令与参数一起使用。exportAssetPath exportFileName -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" Perforce PlasticSCM -vcPerforceUsername -vcPerforcePassword -vcPerforceWorkspace -vcPerforceServer <mode> -vcsModeSession <mode> "Visible Meta Files" "Hidden Meta Files" Perforce PlasticSCM -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-compiler | Unity 仅启动着色器编译器的一个实例,并强制其超时为 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)。 可以在启动时使用此参数将 参数设置为自定义大小(例如,)。 此大小以字节为单位。maxUsedMemory maxUsedMemory -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建模学习工作室整理翻译,转载请注明出处!