hatayama/unity-cli-loop
Let AI Drive Unity, from Editor to Play Mode.
Unity CLI Loop – 通过命令行进行AI驱动的Unity开发
它是什么 – 一个Unity包加上一个小的跨平台CLI(uloop),让大语言模型代理(Claude Code、Codex等)无需人工触碰编辑器即可编译、测试、编辑和控制Unity项目。它的工作原理是安装一个每项目“运行器”,与Unity编辑器内部的IPC服务器通信,暴露一组技能(例如/uloop-compile、/uloop-screenshot、/uloop-pause-point)。
为何重要 – 通常的Unity工作流程要求开发人员打开编辑器、点击构建、运行测试、读取日志并手动调整场景。Unity CLI Loop将最常见的步骤打包成LLM可以调用的CLI命令,从而实现了完全自动化的开发循环:编译→运行测试→读取日志→暂停执行→热重载代码→通过截图验证UI,全部通过语言模型提示完成。
核心功能(捆绑的21个技能)
| 类别 | 技能(示例) |
|---|---|
| 开发循环 | compile、run-tests、get-logs、clear-console、hot-reload、pause-point |
| 编辑器自动化 | launch、focus-window、get-hierarchy、find-game-objects、execute-dynamic-code、screenshot、set-game-view-size、record-video |
| PlayMode测试 | simulate-mouse-ui、simulate-mouse-input、simulate-keyboard、replay-input、control-play-mode |
这些工具有意保持极简;大多数其他编辑器操作可以通过execute-dynamic-code执行,它可以在正在运行的Unity进程中运行任意的C#片段。
快速开始(仅终端)
- 安装CLI –
curl … | sh(macOS/Linux)或PowerShellirm … | iex。用uloop -v验证。 - 添加Unity包 – 在项目根目录运行
uloop package install;它会注入OpenUPM注册表条目和io.github.hatayama.uloopmcp依赖。 - 启动Unity –
uloop launch(聚焦已运行的编辑器或启动新编辑器)。 - 安装LLM技能 – 例如,Claude Code使用
uloop skills install --claude,或使用--agents给读取.agents/skills的工具安装。
同样的步骤也可以通过Unity UI执行:Window > Package Manager和Window > Unity CLI Loop > Settings。
LLM如何使用它
LLM将技能命令作为shell指令发送。示例提示→技能映射:
- “编译项目并告诉我错误。” →
/uloop-compile - “运行单元测试并给我失败日志。” →
/uloop-run-tests+/uloop-get-logs - “在
Player.cs的第42行暂停并显示变量值。” →/uloop-pause-point - “玩家生成后拍摄Game视图的截图。” →
/uloop-screenshot - “在没有完整重新编译的情况下应用这个方法体的修复。” →
/uloop-hot-reload
由于CLI通过Unix域套接字(macOS/Linux)或命名管道(Windows)通信,因此不需要网络端口,多个Unity实例可以共存。
扩展工具集
开发人员可以通过在项目中放置Skill/SKILL.md文件(或shell脚本/C#片段)来添加自定义技能。CLI在启动时加载这些文件,任何可以访问技能目录的LLM都可以像内置技能一样调用它们。
安装说明和兼容性
- 需要Unity 2022.3+。
- 与任何可以执行shell命令和读取技能文件的LLM兼容(Claude Code、Codex等)。
- 对于Claude Code,沙箱必须排除
uloop *命令(请参阅README中的sandbox.excludedCommands示例)。 - V3不再需要Node.js;每项目运行器会自动下载,并通过
.uloop/project-runner-pin.json锁定版本。
许可证
MIT – 免费使用、修改和重新分发。
底线 – Unity CLI Loop将Unity编辑器变成一个无头、可脚本化的服务,LLM代理可以驱动它,使AI辅助的游戏开发循环变得实用且可重复。
相关
- 项目
- 项目
- 项目
- 项目
- 项目