从终端控制 Unity Editor 的命令行工具,支持编译、测试、构建、资源管理等操作,可与 AI 编程助手集成。
UniCli 是一个命令行工具,让你可以从终端控制 Unity Editor——编译脚本、运行测试、管理 Package、检查 GameObject 等,无需离开终端。
双组件架构#
- CLI (unicli): NativeAOT 编译的终端命令行工具
- Unity Package (com.yucchiy.unicli-server): Unity Editor 插件,接收并执行命令
核心能力#
编译与构建#
Compile- 触发脚本编译BuildPlayer.Build/BuildPlayer.Compile- 构建与编译播放器
测试运行#
TestRunner.RunEditMode- 运行 Edit Mode 测试TestRunner.RunPlayMode- 运行 Play Mode 测试
场景与对象管理#
GameObject.Find/Create/Destroy- 查找、创建、销毁游戏对象Scene.Open/Save/List- 打开、保存、列出场景Prefab.Instantiate/Save/Apply- 实例化、保存、应用预制体
资源与包管理#
AssetDatabase.Find/Delete- 搜索、删除资源PackageManager.List/Add/Remove- 管理 Unity Package
材质与动画#
Material.Create/SetColor/SetFloat- 创建材质、设置属性AnimatorController.Create/Animator.SetController- 创建控制器、设置参数
调试与分析#
Profiler.StartRecording/GetFrameData- 性能分析Remote.List/Invoke- 在设备上执行调试命令
特色能力#
- JSON 输出: 所有命令支持
--json标志 - 动态 C# 执行:
eval命令使用 AssemblyBuilder 在 Unity Editor 上下文编译执行任意 C# 代码 - 自定义命令: 继承
CommandHandler<TRequest, TResponse>扩展命令 - 模块化: 可按项目启用/禁用功能模块
- Claude Code 集成: 提供插件使 AI 助手能直接操作 Unity Editor
通信架构#
CLI ↔ Editor 通过 Named Pipe(命名管道)通信,消息格式为 Length-prefixed JSON framing protocol。Editor ↔ Device 通过 Unity PlayerConnection 通信,支持 16 KB 分块传输。
安装方式#
macOS (Homebrew):
brew tap yucchiy/tap
brew install unicli
Unity Package 安装:
unicli install
或通过 Unity Package Manager 添加 git URL。
支持平台#
- macOS (arm64 / x64)
- Windows (x64)
- 需要 Unity 2022.3 或更高版本