编辑器版本:cocos creator 3.8.8
cocos-cli: main分支 版本:c7050863303ba20497169a64c3e08a1ab813ac42
AI用的是deepseek harness
日志如下:
@Client/assets/prefabs/HighlandArena.prefab 用cocos cli mcp 访问, 看看Wall_N是不是有材质
**结论:有材质。** `Wall_N` 上挂的是 `glass-wall.mtl`(uuid `2c95d3d2-149d-4d40-9387-c6333592420c`)。
## 证据
**1) MCP 查到的资源本身**(`assets-query-asset-info`)
| 项 | 值 |
|---|---|
| name | `glass-wall.mtl` |
| source | `db://assets/resources/Materials/glass-wall.mtl` |
| type | `cc.Material` |
| uuid | `2c95d3d2-149d-4d40-9387-c6333592420c` |
**2) prefab 作者数据**:`HighlandArena/Wall/Wall_N` 节点(`_id__: 16`)有三个组件 —— 自定义碰撞体(`3c4d55…`,shape/type/hx/hy/hz 那一坨)、描边可视化组件(`5e6f7C…`,color 90/200/255)、`cc.MeshRenderer`(`Capsule<ModelComponent>`,mesh `1263d74c-8167-4928-91a6-4e2672411f47@2e76e`)。该 MeshRenderer 的 `_materials` 指向上面那个 uuid,见 [HighlandArena.prefab:541-546](Client/assets/prefabs/HighlandArena.prefab#L541-L546)。
顺带确认:`2c95d3d2-…` 在文件里出现 **5 次**(第 543/705/893/1081/1269 行),即 N/S/E/W/T 五面墙用的是同一个 `glass-wall` 材质。
## 一个必须提醒的读数陷阱
这次我用 MCP `scene-query-component` 查 `HighlandArena/Wall/Wall_N/cc.MeshRenderer`,它返回的 `_materials` / `sharedMaterials` 里 **uuid 是空字符串**,而且返回的 path 是 `HighlandArena/Wall/Wall_N/cc.MeshRenderer_003`(多了 `_003` 后缀)。这与我们之前踩过的坑完全一致:**该工具对 `MeshRenderer._materials` 的读数不可信(实测返回空、磁盘上非空)**。如果你只看 MCP 那一条返回,会误判成「Wall_N 没材质 / 材质被清空」——实际上材质完好,prefab 文本和 `assets-query-asset-info` 都能对上。
所以:**结论以 prefab 文本 + 资产库查询为准**;MCP 这条 `_materials` 空值不能作为判据。
本次只做了只读查询(`scene-query-current` / `scene-query-node` / `scene-query-component` / `assets-query-*`),没有 `scene-save`、没有改任何文件。