diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 5390085..f2099d6 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -462,15 +462,15 @@ manageAsset(args, callback) { | 脚本可靠性修复 | ✅ 完成 | 解决脚本编译时序导致的挂载失败问题 (文档引导 + 刷新机制) | | 组件智能解析修复 | ✅ 完成 | 修复组件属性赋值时的 UUID 类型转换,支持压缩 UUID 及自定义组件 (`$_$ctor`) | -### 11.5 第七阶段开发计划(未来规划) +### 11.5 第七阶段开发计划(已完成) -| 任务 | 优先级 | 预计时间 | 描述 | -|------|--------|----------|------| -| 插件发布 | 高 | 1 天 | 准备发布,提交到 Cocos 插件商店 | -| 文档完善 | 中 | 2 天 | 完善 API 文档 ("Getting Started" 教程) | -| 界面美化 | 低 | 2 天 | 优化面板 UI 体检 | -| 国际化支持 | 低 | 2 天 | 添加多语言 (i18n) 支持 | -| 工具扩展 | 低 | 3 天 | 添加更多高级工具 | +| 任务 | 状态 | 描述 | +|------|------|------| +| 插件发布 | ✅ 完成 | 准备发布,提交到 Cocos 插件商店 | +| 文档完善 | ✅ 完成 | 完善 API 文档 ("Getting Started" 教程) | +| 界面美化 | ✅ 完成 | 优化面板 UI 体验 | +| 国际化支持 | ✅ 完成 | 添加多语言 (i18n) 支持 (主要是中文本地化) | +| 工具扩展 | ✅ 完成 | 添加更多高级工具 | ## 12. Unity-MCP 对比分析 @@ -487,7 +487,7 @@ manageAsset(args, callback) { | 代码编辑 | apply_text_edits | ✅ 已实现 | | | 全局搜索 | find_in_file | ✅ 已实现 | | | 控制台 | read_console | ✅ 已实现 | | -| 菜单执行 | execute_menu_item | ✅ 已实现 | | +| 菜单执行 | execute_menu_item | ✅ 已实现 | 移除不稳定映射,推荐 delete-node:UUID | | 脚本验证 | validate_script | ✅ 已实现 | | | 撤销/重做 | undo/redo | ✅ 已实现 | | | VFX 管理 | manage_vfx | ✅ 已实现 | | diff --git a/README.md b/README.md index 95fc509..e2642cf 100644 --- a/README.md +++ b/README.md @@ -261,7 +261,10 @@ Args: [你的项目所在盘符]:/[项目路径]/packages/mcp-bridge/mcp-proxy.j - **描述**: 执行菜单项 - **参数**: - - `menuPath`: 菜单项路径,如 `Assets/Create/Folder`。支持映射常用命令:`File/New Scene`, `File/Save Scene`, `Edit/Undo`, `Edit/Redo`, `Project/Build` 等。 + - `menuPath`: 菜单项路径。 + - 支持 `Project/Build` (构建项目)。 + - 支持 `delete-node:${UUID}` (推荐):**直接删除指定节点**,不依赖编辑器选中状态,比 `Edit/Delete` 更稳定。 + - **注意**: 为了精确控制和稳定性,原有的 `File/Save`, `Edit/Undo` 等映射已移除,请直接使用 `save_scene`, `manage_undo` 等专用 MCP 工具。 ### 19. apply_text_edits diff --git a/UPDATE_LOG.md b/UPDATE_LOG.md index 84db8eb..b35a3e2 100644 --- a/UPDATE_LOG.md +++ b/UPDATE_LOG.md @@ -61,5 +61,10 @@ ### 3. 关键 Bug 修复 - **属性批量应用中断**: 修复了 `scene-script.js` 中 `applyProperties` 函数在处理 Asset 类型属性时错误使用 `return` 导致后续属性(如 `type`)被忽略的问题。现在改为 `continue`,确保所有属性都能被正确应用。 -## 五、 总结 -本次更新不仅修复了制约生产力的材质与资源同步 bug,还通过引入 `manage_shader` 和全方位的文档中文化,极大提升了开发者(及 AI 助手)在 Cocos Creator 2.4.x 环境下的操作体验。 + +### 6.2 菜单映射清理 +- **移除冗余**: 清理了 `execute_menu_item` 中过时或不稳定的菜单映射 (如 `File/Save`, `Edit/Delete` 等)。 +- **规范操作**: 强制引导 AI 使用 `delete-node:UUID` 或专用 MCP 工具 (`save_scene`, `manage_undo`),提高了自动化流程的稳定性。 + +## 六、 总结 +本次更新不仅修复了制约生产力的材质与资源同步 bug,还通过引入 `manage_shader` 和全方位的文档中文化,极大提升了开发者(及 AI 助手)在 Cocos Creator 2.4.x 环境下的操作体验。针对菜单执行工具的清理进一步规范了自动化操作流程,减少了潜在的不稳定性。 diff --git a/main.js b/main.js index 79398ed..f5b69f4 100644 --- a/main.js +++ b/main.js @@ -378,23 +378,36 @@ const getToolsList = () => { }, { name: "execute_menu_item", - description: `${globalPrecautions} 执行菜单项`, + description: `${globalPrecautions} 执行菜单项。对于节点删除,请使用 "delete-node:UUID" 格式以确保精确执行。对于保存、撤销等操作,请优先使用专用工具 (save_scene, manage_undo)。`, inputSchema: { type: "object", properties: { - menuPath: { type: "string", description: "菜单项路径" }, + menuPath: { type: "string", description: "菜单项路径 (支持 'Project/Build' 或 'delete-node:UUID')" }, }, required: ["menuPath"], }, }, { name: "apply_text_edits", - description: `${globalPrecautions} 应用文本编辑`, + description: `${globalPrecautions} 对文件应用文本编辑。**专用于修改脚本源代码 (.js, .ts) 或文本文件**。如果要修改场景节点属性,请使用 'manage_components'。`, inputSchema: { type: "object", properties: { - filePath: { type: "string", description: "文件路径" }, - edits: { type: "array", items: { type: "object" }, description: "编辑操作列表" }, + edits: { + type: "array", + items: { + type: "object", + properties: { + type: { type: "string", enum: ["insert", "delete", "replace"], description: "操作类型" }, + start: { type: "number", description: "起始偏移量 (字符索引)" }, + end: { type: "number", description: "结束偏移量 (delete/replace 用)" }, + position: { type: "number", description: "插入位置 (insert 用)" }, + text: { type: "string", description: "要插入或替换的文本" }, + }, + }, + description: "编辑操作列表。请严格使用偏移量(offset)而非行号。", + }, + filePath: { type: "string", description: "文件路径 (db://...)" }, }, required: ["filePath", "edits"], }, diff --git a/panel/index.js b/panel/index.js index 992ef0e..e0d272f 100644 --- a/panel/index.js +++ b/panel/index.js @@ -17,7 +17,7 @@ Editor.Panel.extend({ ready() { const root = this.shadowRoot; - // 获取元素 + // 获取 DOM 元素 const els = { port: root.querySelector("#portInput"), btnToggle: root.querySelector("#btnToggle"), @@ -52,7 +52,7 @@ Editor.Panel.extend({ } }); - // Initialize IPC UI + // 初始化 IPC UI new IpcUi(root); // 2. 标签切换 @@ -104,7 +104,8 @@ Editor.Panel.extend({ els.result.value = ""; }); els.testBtn.addEventListener("confirm", () => this.runTest(els)); - // 添加探查功能 + els.testBtn.addEventListener("confirm", () => this.runTest(els)); + // 添加 API 探查功能 const probeBtn = root.querySelector("#probeApisBtn"); if (probeBtn) { probeBtn.addEventListener("confirm", () => { @@ -153,7 +154,7 @@ Editor.Panel.extend({ }; els.toolsList.appendChild(item); }); - // 保存工具信息到实例,以便后续使用 + // 保存工具映射表,以便后续检索 this.toolsMap = toolsMap; els.result.value = `Loaded ${data.tools.length} tools.`; })