团结CLI
用于AI代理的Windows-First Unity Editor自动化CLI. 可执行文件是 unitycli; npm 软件包为 @alpsckr/unitycli; 团结软件包是 com.alpsckr.unitycli。 。 。 .
所需资源
- 窗口
- 节点.js 20或更新
- 团结 2022.3或更新
- 安装桥时的统一工程
- 一个打开的团结编辑器只有在使用活的团结能力时才会打开;安装通常在用户明确批准后可能只关闭精确的目标编辑器
安装
为当前用户安装 CLI 一次 :
npm install -g @alpsckr/unitycli
在您通常工作的目录中启动您的 AI 并告诉它:
{\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}我需要你帮助 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}。
init help 包含完整的AI安装协议。 只读的发现使用独特的当前 Unity 工程和工作空间,而不要求您重复,报告已安装和可用的 Bridge 版本,并接受您已经命名的任何精确的 Skill 目录 。 它只询问何时仍有真正的选择,例如,在几个已发现的团结项目中,哪一个项目得到了桥. 开通的统一编辑器是正常的安装状态:桥被替换到位. 关闭是一个倒计时:只有在发布报告之后,一个真实的目录锁才能让AI正常关闭准确的工程,并且只有在用户批准后才能关闭. 它从不强制终止 团结 或决定一个未保存的场景快取.
手动设置
读取同一协议并检查当前目录 :
unitycli init help
unitycli init discover
在一个明确的团结项目中安装或修复桥梁。 保持编辑器打开:一个已存在的软件包通过文件的就位而聚合出文件,其目录从未被重新命名. 被屏蔽的文件通过路径报告,并重运行同一命令使其趋同. --close-editor 保留供操作员自行决定; 安装协议从未要求关闭 :
unitycli init package --project C:\path\UnityProject
unitycli init package --project C:\path\UnityProject --close-editor
unitycli init package --project C:\path\UnityProject --check
安装或检查精确的用户选择的技能目录, 包括 Pi :
unitycli init skill --target C:\path\Workspace\.pi\skills\unitycli
unitycli init skill --target C:\path\Workspace\.pi\skills\unitycli --check
通用代理技能仍可用作预设:
unitycli init skill --agent .agents --scope workspace --workspace C:\path\Workspace
unitycli init skill --agent .agents --scope workspace --workspace C:\path\Workspace --check
在一个工作空间安装或检查 Claude 技能 :
unitycli init skill --agent claude --scope workspace --workspace C:\path\Workspace
unitycli init skill --agent claude --scope workspace --workspace C:\path\Workspace --check
安装或检查一个用户级技能 :
unitycli init skill --agent .agents --scope user
unitycli init skill --agent .agents --scope user --check
unitycli init skill --agent claude --scope user
unitycli init skill --agent claude --scope user --check
预设的工作空间和用户范围是独立的选择. 准确 --target 是最终用户意图,不能与预设代理/镜像选项相合并。 桥梁和Skill是独立的授权效果;一个失败不会使另一个无效或阻挡.
校验和诊断
软件包和技能检查只读 :
unitycli init package --project C:\path\UnityProject --check
unitycli init skill --target C:\path\Workspace\.pi\skills\unitycli --check
unitycli init skill --agent .agents --scope workspace --workspace C:\path\Workspace --check
用户打开或刷新 Unity 后, 检查注册编辑器会话 :
unitycli instances list
unitycli instances prune --instance C:\path\UnityProject
unitycli doctor --project C:\path\UnityProject
instances list离线 137instances list --all{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}我们一起生活吧 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}时间已到invalidRecordCount返回数量; 当前项目由团结自动恢复。需要清理历史记录时运行instances prune --instance <name|alias|projectPath>并检查removed, (中文)remaining3⁄4 ̄ ̧漯Bdeferred时。
要创建稳定选择器 :
unitycli target alias set C:\path\UnityProject my-project
unitycli target alias list
第一个团结呼叫
随着选定的团结项目开放并准备就绪:
unitycli tools group --instance C:\path\UnityProject
unitycli tools search 'editor|state' --instance C:\path\UnityProject
unitycli tools describe editor.state --instance C:\path\UnityProject
unitycli tools run editor.state --input '{}' --instance C:\path\UnityProject
不要猜测工具名称或输入 。 发现当前目录,读取一个描述符,然后调用精确的工具. command <name> 是一种对同一个活目录的计程参数投影,而不是第二个能力系统. \\ schema 默认至例 ;\ \ 默认至例 \ \ \ probe / smoke}。
可选扩展使用其专用控制平面 :
unitycli extensions list --project C:\path\UnityProject
unitycli extensions install <id> --project C:\path\UnityProject
unitycli extensions remove <id> --project C:\path\UnityProject
unitycli extensions doctor --project C:\path\UnityProject
发现列表默认为20项,最多允许100项,并继续 pageInfo.nextCursor数字 :
unitycli tools group list <group> --page-size 20 --cursor <nextCursor> --instance <name|alias|projectPath>
unitycli tools search '<k1|k2|...>' --page-size 20 --cursor <nextCursor> --instance <name|alias|projectPath>
unitycli command --project-path C:\path\UnityProject --page-size 20 --cursor <nextCursor>
在"PowerShell"中,引用了用单引出词来分管搜索的关键词.
活方法钩
这个 debug 组主机 : debug.hook-* 在 Play 运行前, 在当前编辑器域的确切管理方法上安装截取器, 观察调用, 修改行为, 或执行绑定的 C# 回调, 并将这些定义保存在 Play 会话和域重装在一个编辑器会话内 :
unitycli command debug.hook-install --label ai-movement-order --target '{"assemblyName":"Assembly-CSharp","typeName":"Game.AiController","methodName":"BeginMovement","parameterTypes":[],"returnType":"System.Void","isStatic":false}' --capture '{"arguments":true}' --instance C:\path\UnityProject
unitycli command debug.hook-list --instance C:\path\UnityProject
unitycli command debug.events-read --hook-id hook-0123456789abcdef --instance C:\path\UnityProject
在使用该组前值得了解的边界:
- 定义属于一个编辑会话,并在编辑器重启时被丢弃;安装钩子不是任意代码的持续授权.
- 在补丁保留原始行为之前编译的呼叫站点,所以一个已安装的定义可以合法地不产生点击. 使用
debug.events-read或真正的企业回击 证明打击. - 回调源通过编辑器捆绑的 C# 编译器按需要编译并装入当前域;这不是一个工程编译,但它需要一个编译器子进程,无法单独卸载.
disable财务报告和审定财务报表remove停止未来的发送,并恢复最初的行为;它们不会使先前援引已经产生的影响倒退.
unitycli tools describe debug.hook-install 记录选定实例的精确目标身份、抓取选项、回调上下文 API、资源预算和错误恢复。 带有抓取选项的纯观测不会启动编译器,因为一个没有回调源的定义不需要一个.
产出
每个命令都返回一个JSON信封. stdout 默认为紧凑单行 JSON; 使用 --pretty 仅用于缩进输出.
成功 :
{"ok":true,"requestId":"req-...","data":{}}
失败 :
{"ok":false,"requestId":"req-...","error":{"code":"...","message":"...","nextActions":[],"transient":false,"retryAfterMs":0}}
遵循结构 nextActions与 --timeout-ms T,使用至少为 2 * T + 5000 毫秒后等待统一cli进程退出. E_EXECUTION_TIMEOUT 表示没有可信任的终端结果; 超时不会停止Unity效果或已运行的同步 C# . 对于 asset.refresh,玩家构建, Play Mode, 软件包安装(包括准确的版本更改),软件包去除,以及 test.run,发现匹配域 .status 工具并传递原始根 requestId;状态读取同片段的活动相或精确终端而不重放效果. 否则,在决定是否提交新的变异之前,先检查商业状态.
更新并删除
更新全球CLI,然后让AI再次运行安装协议:
npm install -g @alpsckr/unitycli@latest
unitycli init help
要删除工作空间或用户技能, 只删除选中的 unitycli 技能目录 :
<explicit-target>/unitycli
<workspace>/.agents/skills/unitycli
<workspace>/.claude/skills/unitycli
~/.agents/skills/unitycli
~/.claude/skills/unitycli
要移除管理中的桥, 请先检查当前 package.bridge-remove 说明并依之:
unitycli tools describe package.bridge-remove --instance C:\path\UnityProject
删除全局的 CLI :
npm uninstall -g @alpsckr/unitycli
文档
许可证
麻省理工学院