20 CLI commands in 10 min

Oct 8, 2026|10 Min
Thomas Krogh-Jacobsen
Thomas Krogh-Jacobsen - Unity Technologies
Senior Technical Content Marketing Manager

为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。

在我们上一篇文章中,我们介绍了如何开始使用 Unity CLI 和 管道 包。如果你以前没有尝试过,或者只是需要回顾一下,请查看这里。

在本文中,我们想分享一些你可以添加到开发者工具箱中的更多命令。拥有超过140个命令,并且每次更新都会增加更多,你不需要学会All这些。然而,记住一些基本命令并了解有哪些更多选项,将帮助您更好地利用人工智能开发工作流程。请随自由浏览并挑选新建的,跳过你已经知道的。我们开始吧。

在深入细节之前先做一个快速声明:新建Features和改进正在频繁添加。撰写本文时,我使用的是 Unity CLI 的 1.0.0-beta.10 版本,结合 com.unity.pipeline 包的 0.6.0-exp.1 版本和 Unity 6000.6.0f1。因此,未来情况可能会发生变化,如果您遇到问题,请查阅 Unity CLI 文档:https://docs.unity.com/en-us/unity-cli/use-unity-cli。

1.使用--help查Any命令

你可能已经知道并使用过 unity --help 命令。然而,--help 实际上可以附加到嵌套命令的Any关卡以获取即时文档。有疑问When,只需在结束添加 --help。

以下是一些例子:

你可能已经知道并使用过 unity --help 命令。然而,--help 实际上可以附加到嵌套命令的Any关卡以获取即时文档。有疑问When,只需在结束添加 --help。

以下是一些例子:
获取所有编辑器的文档

unity 编辑器 --help

# 获取安装特定模块的参数

unity install-modules --help

# 认证命令帮助

unity auth --help

Login 命令的帮助信息

unity auth login --help

每一个帮助屏幕都会立即输出该命令的作用、可用的选项以及它期望的参数。

--help 标志也是 Agent 用来探索工具的,所以当您使用 CLI 开始一个新的会话时,您可以要求您的 Agent 运行 --help 以确保它已连接。

2.列表命令

说到文档和在众多选项中找到方向,还有一个命令(不带Arguments运行When):

unity 命令

此命令连接到正在running的 Unity Editor器,通过 管道 包的本地Server,并列表编辑器 API 向 shell 暴露的、Agent可以使用于在 Unity 内部工作的每个已注册命令。

使用命令的一种示例可以是:
unity 命令 editor_play


要让连接的 Editor 进入播放模式(我们 CLI 等效于点击播放按钮),这样您的脚本就可以在您无需触碰 Editor UI 的情况下开始运行。同样,对应的功能是:
unity 命令 editor_stop


为确保您的 Agent 了解 CLI 可以做什么(而且因为它有时感觉像一个黑箱),您在开始新提示时可以使用的技巧是更具探索性,并向 Claude、Codex 等提供关于 CLI 功能的背景信息。你可以通过running类似以下的命令来实现:
在 bash 中运行 "unity command" 并告诉我它能做什么,然后测试一个简单的 "eval" 命令

3.检查状态和running多个个实例

如果你需要检查 Unity CLI 是否正在running,你可以简单地使用以下命令:
Unity 状态
它应该返回类似这个的:
Unity Editor (端口 7800): readyProject: /Users/thomaskr/Github/UnityProjects/MyAwesomeProjectVersion:6000.6.0d1PID: 85009
如果你在第一行旁边看到 ready 状态,这意味着 Editor 是在线且可访问的。它还确认了Editor器所ON的端口、Project路径、Editor版本和进程标识符(PID)。

unity status 已经列出了所有连接的 Editor,所以它本身就回答了“哪些正在运行?”这个问题。When需要具体知道哪些Projects安装了并且可以访问 管道 包时,请使用:
# 管道

Unity 管道列表
这显示了CLI所知道的、正在运行Pipeline包的每一个Unity Project,列出每个Project及其Server端口以及当前是否可达。

当多个编辑器像上面示例那样运行时,你可以通过传入带有其项目路径的 --project-path 来针对其中一个进行操作。否则,CLI 会选择包含当前目录的Project中的Editor器。

4.短标志和长标标志

大多数命令还提供了一个单一母快捷键,专为您的日常Terminal工作流程中的快速输入而设计。所以你不需要运行 unity --help,也可以直接使用 unity -h,两者都会给你相同的答案,但可以为你节省一些按键。

unity --help # 长标志版本(改进了可读性)

unity -h # 简短标志版本(日常使用更快)

5.Check您的Project大小

如果你想自由Space,这个命令可以帮助你快速识别你的 Unity Projects的大小:


每个文件夹的项目磁盘占用量,这样您就可以看到多少是可再生(库/临时)

unity projects size

# 按大小排序,总结所有已注册的 Project

unity projects size --all

6.Control输出Format

默认情况下,命令返回可读的文本,但When脚本需要干净的嵌套 json 进行解析时,您可以将FormatChange为 json。当您的 Agent 直接读取一个小的、扁平的结果且不需要程序化解析它时,默认输出为可读格式,一旦响应具有结构或大小,否则需要使用正则表达式猜测不保证保持稳定的格式,则切换到 --format json。


机器可读的json

unity editors list --format json

人类友好格式

unity editors list --format human

7.无需下载预览模块安装

在您提交下载和占用磁盘空间的大型模块之前,您可以使用 --dry-run,它将向您显示将安装哪些模块以及它们的组合大小,而无需下载任何内容。

unity install-modules --module android ios --dry-run

进行一次运行可以让你对整个Project将是什么样子有一个很好的Overview。

8.在编译时间之前检查构建的配置

对于构建没有 --dry-run 选项,但您可以在付费编译前验证其形状。 unity build 需要 --target 或 --profile,并且有几个标志在任何构建发生之前退出,这可以在几秒钟内捕获错误的 Target 或缺失的构建配置文件,而不是几分钟。

在运行它之前测试您的版本

unity build --list-targets

# 列表档案

unity build --list-profiles

9.一次性安装带有All模块的指定的Editor器版本

对于对可重现性要求高的 CI 环境,您可以在没有 Hub 的情况下安装一个精确的 Editor 版本。版本是一个位置参数,--cm 会自动引入子模块,而命名平台模块来自单独的 install-modules 命令。

# 版本是位置的,而不是 --version 标志

unity 安装 6000.6.0f1

# 自动包含子模块

unity install 6000.6.0f1 --cm

# 添加平台模块(单独命令,支持--dry-run)

unity install-modules --module android ios webgl

10.从终Terminal进行Editor器安装和升级过程

与其使用 Hub 来管理您的安装过程,不如使用 basic unity install 命令,该命令将为您提供所有可用 Editor 版本的列表,然后您无需打开 Hub 即可安装。

交互式安装指南

Unity 安装

安装了新建版本后,您可以使用升级命令指定ProjectFolder路径和要升级到的版本来升级Project:
# 根据您的 Project 替换 Project 路径和 Editor 版本

unity projects upgrade /Users/thomaskr/Github/UnityProjects/CLIDemo --to 6000.6.0f1

在上面的截图中,您可以看到升级是如何通过一个Simple的命令线Done的。

11.从Terminal创建Project

您可以通过命令行界面(CLI)用几个命令创建新建Projects:


默认交互模板

unity projects create "CLI demo"

running标准模式会给你一个交互式向导,引导你完成整个过程。只需选择您想使用的Editor版本,Link Unity Cloud,然后在创建时选择模板和Editor版本,使其非常容易地设置一个类似于您在 Hub 中所做的那样的新建Project。

然而,与 Hub 不同,您还可以自动化Settings,如果您有频繁的设置工作流程,只需像您希望的那样定义选项即可。这是一个定义指定的Editor器版本、模板和Project路径的示例。


使用模板(3D、2D、VR等 - 简单替换占位符)

unity projects new "CLI demo" --editor-version 6000.6.0b9 --template com.unity.template.3d --path ~/MyProjects

12.截屏

如果需要在工作流程中捕获屏幕截图,您有三种不同的命令可用。

# 将 Scene 或 Game view 捕获到 PNG 文件,返回路径。参数: --view, --output, --width, --height

# Game view

# 注意:屏幕空间覆盖UI不在Camera的输出中,所以它返回黑色

unity 命令截图 --view 游戏

# 场景视图

unity 命令截图 ---view scene

# 以指定的 Resolution 和 Camera 捕获,将 Base64 返回内联

# 读取合成的后缓冲区,因此包含覆盖的 UI。仅播放模式.

unity command capture_game_view --width 1920 --height 1080 --camera "Main Camera" --save_path Screenshots/check.png

输出将看起来像这样:

这可以为 Claude 代码 自身最佳实践指南中的“实现此项、截屏、与设计进行比较”验证Loop提供帮助,因为图像会作为数据返回,Agent可以立即进行推理,而不是一个它需要单独Open的路径。

13.变更日志

由于 Unity CLI 和 管道 包正在快速添加新建Features,我喜欢使用的一个方便的命令是 changelog,您只需running以下命令即可获取:

Unity 更新日志

它总结了最近的更改,为您提供了一个快速Overview,了解需要注意的事项以及可以尝试的新建命令。

14.使用 Eval 运行 C#

当 Unity 管道包在您的 Editor 中运行时,CLI 可以使用 eval 命令 在 Editor 中实时编译和运行 C# 代码片段。因为没有Project关卡的重新编译和领域重新加载,所以它在毫秒内执行,而不是让你等待。您可以使用此功能来运行自动化设置脚本、查询编辑器状态,甚至使用 unity command eval_file --file path/to/script.cs 从磁盘执行 C# 脚本文件。

# 返回一个布尔值,如果 Editor 当前处于播放模式

unity command eval --code "return UnityEditor.EditorApplication.isPlaying;"

# 将一个简单的字符串记录到控制台窗口

unity command eval --code 'Debug.Log("I was invoked in the terminal");'

15.测试

Unity 的测试工具,也称为 Unity Test Framework,可以直接从 CLI 运行。

Unity 将测试分为两类,一旦Agent重复running它们,这种差异就非常重要:

  • 编辑模式测试:无需按播放即可立即运行。适用于测试纯逻辑(数学、数据处理、非MonoBehaviour类)。
  • PlayMode 测试:实际运行你的游戏片刻,就像 Player 体验它一样。更慢,因为 Unity 需要在场景重新加载东西。

你可能想从 EditMode 测试Start。它们更快,编写更简单,并且涵盖了您早期所需的大部分内容。安装了Test Framework Unity CLI 后,您可以在命令线调用它:

运行 Project 的 EditMode 测试

unity test --mode EditMode

# 过滤到子集并写入 JUnit 报告

unity test --mode EditMode --filter MyNamespace.MyTests --junit-output results.xml

# 只运行受近期更改影响的测试

unity test --affected

这运行在每个编辑模式测试中。添加 --junit-output results.xml,您还可以获得一个关于通过和失败情况的结构化报告。然后要求你的 Agent 运行测试并总结它发现的内容,比如:运行 EditMode 测试,只告诉我哪些失败了,用纯英文说明。Agent 运行命令,读取报告,然后回传,无需再手动滚动日志。

16.管理您的云

虽然登录 management 位于 unity auth 下,但您可以使用 unity cloud 从终端来管理您的 Unity Cloud Organization 和 Projects。

# 打开所有可用云命令列表

Unity Cloud

要获取您的Organization id和帐户

Unity Cloud状态

仅活动组织id,可直接管道传输

unity cloud org 当前

17.Check医生

当故障排除或验证您的 Environment 时,您可以使用 unity doctor 命令,而不是手动审计 Authentication、安装和日志文件。该命令对您的设置进行全面的 Health 检查,包括可用的编辑器、代理配置和最近的 Activity 日志,并以单一输出显示。它对于在初始设置期间诊断 CI 机器上的静默配置错误特别有用。

# 诊断您的设置

Unity医生

# 添加完整的错误堆栈跟踪

unity doctor --verbose

由于静默代理配置错误是常见的版本失败原因,您可以在running构建之前考虑检查Editor器Health状况。你可以简单地自动化这个过程,让它ON CI 机器的设置期间运行。

您也可以使用 unity env 命令。它是 unity doctor 的一个子集,当您只需要一个路径时会很有用,例如清除下载缓存,或手动检查 user-settings.json。

# 解析的路径(安装路径、缓存路径、配置路径)

unity env

18.创建自定义定义命令

[CliCommand] 属性使您能够轻松编写自定义命令,为您的 AI 代理提供自定义脚本。要使用您刚才的 CLI 命令,您只需要一个标准的 Static C# 方法,并用 [CliCommand] 和 [CliArg] 属性进行装饰。

管道 包在编译期间自动发现这些Attributes,这意味着无需用户手册配置或注册文件。当您不带任何参数运行unity command时,CLI 会动态列出所有可用的自定义命令以及内置命令。

注意:[CliCommand] 属性使命令可以通过 CLI 发现和调用。对于参数化执行,您使用 C# 语法直接调用 unity command eval 方法,而不是传递 CLI 风格的标志。

让我们看看一个快速的“Hello World”自定义命令的实际操作。

创建名为HelloWorldCommand.cs的新C# Script。确保类和方法是静态的,并包含 Unity.Pipeline.Commands 命名空间:

使用UnityEngine;

using Unity.Pipeline.Commands;

public static class HelloWorldCommand

{

[CliCommand("hello-cli", "A hello world test")]

public static void SayHello()

{

Debug.Log("大家好!我是一个自定义命令行命令。

}

}

要运行您的新建命令,请Fire您的Terminal并执行:

unity command hello-cli

运行它会在你的终端中打印命令的结果,而 Debug.Log 的输出会出现在 Editor 的控制台窗口中。

如果您想了解更多关于创建自定义定义命令的信息,我们将在未来的文章中介绍。

19.使用 MCP Server

虽然使用 CLI 通常是推荐的工作流程,但如果需要原生工具集成或您的 Agent 在 shell 命令方面遇到困难,Unity CLI 也可以作为 MCP Server 运行。

MCP 通过在持久连接上为代理提供工具名称、Descriptions和结构化模式的直接访问,简化了集成,避免了原始 shell 执行和输出解析。虽然 CLI 适用于脚本和用户手册工作流程,但 MCP 可以将 Unity 工具缝嵌入到 AI 工作流程中。两者都达到相同的 Editor 能力,性能上没有明显的差异。

AI 客户端通常会自动启动 MCP Server。尽管Server是独立平台运行的,但Editor器工具需要一个带有 管道 包的ActiveEditor器。将 MCP 视为一个备用接口,以防您的工具出现问题。在大多数使用情况下,Unity CLI 将是最佳选项。

Configure您的AI客户端,使用:

查看支持哪些代理

unity mcp 配置 --list

将 Server 添加到 Claude Code

unity mcp 配置 claude-code

# 或到光标,仅限于当前 Project

unity mcp 配置 游标 --local

# 在不写入的情况下预览配置更改

unity mcp 配置 vscode --dry-run

20.用于CLI的Unity Agent

Unity 为 CLI 提供了 Agent 技能。这可以帮助您的 Agent 知道存在哪些命令以及如何调用它们。CLI 可以为你安装它:

# 在不安装它们的情况下打印可用技能

Unity技能

# 列出该技能包含的文件

unity skill show --list

# 显示支持的客户端和安装状态

unity skill install --list

安装到您的AI客户端中

unity skill 安装 claude-code

更新到最新版本

unity 技能刷新

接下来该怎么做?

我希望这是对命令的快速Overview,对您有帮助。就像我提到的,你不All部记住,但了解一些Basic命令会非常有帮助。在我们的Next一篇文章中,我们将更深入地探讨与 Claude 代码 和 Unity 的协作。游戏编码愉快!