--- name: unity-cli description: 安装和修复 DGame Unity CLI,使用内嵌 Pipeline 与项目级 Workflow 排查 CLI/MCP 连接,查询 Unity Editor/Development Player,执行编译、测试和受控验证。涉及 CLI 安装、连接配置或实际 Unity 状态时使用;纯源码或文档任务不连接 Editor。 --- # DGame Unity CLI ## 版本约束 本项目 Unity CLI 的指定版本以 [tool-versions.json](../../scripts/tool-versions.json) 的 `unityCli` 字段为唯一依据,操作前读取该值。安装、修复及 PATH 回退都必须匹配该值;`doctor` 对实际 `--version` 做精确比较,不匹配时报告 blocked,不自动替换工具。 `beta` 渠道或 `latest` 不代表本项目指定版本。用户明确要求调整版本时,更新版本配置,再按操作规程重新验收。 ## 执行入口 从仓库根目录运行 `python .agents/scripts/workflow.py doctor`。脚本固定把 `GameUnity` 作为 Unity 工程;CLI 优先使用 `GameUnity/Tools/unity.exe`,文件缺少时从系统 `PATH` 查找 `unity`。此 CLI 与 Unity Editor 自身的 `Unity.exe` 是不同程序。 用户要求安装或修复 CLI 时,按 [操作规程](references/operations.md) 的安装与验收步骤处理。常规使用先运行 `python .agents/scripts/workflow.py doctor` 记录当前 CLI 的绝对路径、版本和 SHA-256,再运行 `python .agents/scripts/workflow.py unity list` 获取当前 DGame 工程注册命令。查询示例:`python .agents/scripts/workflow.py unity query list_open_scenes`。 用户要求 MCP 接入时,使用 CLI 自带的 `mcp` stdio 服务,固定 CLI 和工程的绝对路径;具体配置与验证见操作规程。 ## 不变量 - Unity Editor 查询、编译、测试和写入串行;只绑定当前 `DGame/GameUnity` 的绝对路径。新操作前要求唯一实例且 ready;已审核的状态轮询允许观察 busy/compiling。 - 源码使用代码编辑工具修改;CLI 与 MCP 都只调用已审核的查询和验证能力,不绕过 Workflow 的写入预览与审批。 - 未知命令、任意 eval、菜单透传和跨工程实例默认阻塞。 - 写入操作先 preview,再由用户明确确认后执行;请求超时先检查实际状态,禁止自动重放。 - 测试先发现用例,分别核对模式、筛选器、执行数和终态;零用例、全跳过、失败或取消都不通过。 - 缺少工具、命令或连接时报告具体原因。安装、替换和配置按用户当前任务及已有授权处理;Workflow 本身不会自动安装、升级或启动 Editor。 - 不将 Pipeline 实例描述文件中的鉴权信息输出到日志或提交到仓库。 ## 常用命令 ```powershell python .agents/scripts/workflow.py doctor python .agents/scripts/workflow.py check python .agents/scripts/workflow.py unity list python .agents/scripts/workflow.py unity query list_open_scenes python .agents/scripts/workflow.py unity runtime-status --runtime-path python .agents/scripts/workflow.py unity preview --params-file request.json python .agents/scripts/workflow.py verify --profile code python .agents/scripts/workflow.py verify --profile unity --test-filter GameLogic ``` CLI 启动参数以当前可执行文件的帮助为准;Editor 命令以实时注册描述和 `GameUnity/Packages/com.unity.pipeline/Documentation~` 为准。截图、资源写入、构建和 Player 操作需要单独验证和授权。 配置表导出交给 [luban-dev](../luban-dev/SKILL.md),业务框架 API 交给 [dgame-dev](../dgame-dev/SKILL.md)。