切换语言
切换主题

用 AI 生成 Cocos 场景说明文档:让代码助手真正理解你的游戏

你让 Claude 写一个新组件,它生成的代码引用了不存在的节点名。你让 Cursor 添加一个功能,它不知道你已经有现成的预制体可以复用。每次解释完项目结构,过两天又得重新说一遍。

说实话,我用 AI 辅助开发游戏的时候,这种事儿太常见了。AI 写普通 Web 项目还挺溜,一到 Cocos Creator 就各种”不对劲”。不是它笨,是它压根看不见你的场景层级、节点结构、组件配置。

这背后有个根本问题:AI 和游戏引擎是两套独立的工具。AI 只能读代码文件,但 Cocos 的核心内容都在场景文件里,那些 .scene.prefab 的 JSON 结构,AI 根本没法直接理解。

这篇文章我会分享一个实用的解决方案:用 CLAUDE.md 文件 + 场景说明文档,让 AI 真正理解你的游戏项目。还会给出一套可复制的 Prompt 模板,你照着用就能生成自己的场景文档。

1. 为什么 AI 无法理解你的游戏项目

1.1 AI 与引擎的”隔离墙”问题

Summer Engine 有一篇博客讲得很透:AI 和引擎是分离的工具。AI 对场景层级、现有脚本、项目结构完全没感知。你让它写代码,它只能基于你给的上下文推断。问题是你给的上下文往往不够。

这跟 Web 开发不一样。Web 项目的代码结构基本都在文件里,AI 读一遍就能理解。游戏项目呢?大量关键信息藏在编辑器里——场景层级、节点位置、组件参数,这些都不是代码文件能表达的内容。

1.2 Cocos Creator 项目的特殊性

Cocos Creator 的场景(Scene)是逻辑组织结构,不是代码文件。你打开一个 .scene 文件,看到的可能是一堆 JSON,但 AI 不会去解析这玩意儿。节点层级(Hierarchy)是你在编辑器里拖拽出来的产物,预制体(Prefab)更特殊,它本质是个资源文件。

这就导致一个很尴尬的局面:你问 AI”帮我修改 GameRoot 下面的 ScoreLabel”,AI 根本不知道 GameRoot 是什么,ScoreLabel 又在哪个节点上。你得手动把整个场景结构描述一遍,累死。

1.3 现有方案的局限

CLAUDE.md 文件是个思路,但需要手动写,维护成本高。每次改场景结构都得同步更新,不然信息就过时了。MCP Server 方案门槛更高,需要额外开发 WebSocket 服务,配置一堆东西。Unity 有 Bezi 这种实时索引工具,能自动把脚本、资源、场景都喂给 AI,但 Cocos 暂时没有类似的东西。

所以最现实的方案还是文档化——把 AI 看不见的东西写下来,让它能读。

2. CLAUDE.md 文件:让 AI 记住你的项目

2.1 什么是 CLAUDE.md

CLAUDE.md 是 Claude Code 的项目级上下文文件,放在项目根目录。类似的还有 Cursor 的 .cursorrules、GitHub Copilot 的 .github/copilot-instructions.md。作用很简单:给 AI 提供它无法从代码推断的上下文。

比如你有个组件叫 ScoreManager,AI 读代码能知道它干什么。但 AI 不知道这个组件挂载在哪个节点上,跟哪些节点有交互。这些信息就是 CLAUDE.md 要写的。

2.2 游戏项目的 CLAUDE.md 应该写什么

Mr. Phil Games 的博客建议写这几类信息:

项目基本信息:引擎版本、目标平台、游戏类型。这能让 AI 知道你用的是 Cocos 3.8 还是 2.x,是微信小游戏还是 App。

场景结构概述:Boot 场景、Game 场景、结算页分别干什么。AI 知道这个才能理解你说的”在 Boot 场景加载资源”是什么意思。

核心节点命名规范:Canvas、GameRoot、UIRoot 这些顶级节点。AI 生成代码时会自动用这些名称。

组件清单:已实现的核心组件及其职责。避免 AI 重复发明轮子。

2.3 Cocos Creator 项目 CLAUDE.md 示例

这是我一个休闲小游戏项目的 CLAUDE.md,你可以参考:

# 项目上下文 - 小游戏 Demo

## 基本信息
- 引擎:Cocos Creator 3.8
- 类型:休闲小游戏
- 平台:微信小游戏

## 场景结构
- Boot.scene:启动加载场景,挂载 GameManager
- Game.scene:主游戏场景,包含 GameRoot + UIRoot
- Result.scene:结算页,显示分数和按钮

## 核心节点
- Canvas:UI 根节点
- GameRoot:游戏内容节点,挂载 GameLogic 组件
- UIRoot:UI 层节点,包含 ScoreLabel、PauseButton

## 已实现组件
- GameManager:游戏生命周期管理
- ScoreManager:分数计算与存储
- AudioManager:音效播放

## 代码规范
- 所有 UI 节点放在 Canvas 下
- 游戏逻辑节点放在 GameRoot 下
- 组件命名用 Manager 结尾表示管理类

有了这个文件,AI 就不会再问你”GameManager 是什么”、“GameRoot 在哪里”了。

3. 场景说明文档:自动生成的实践方法

3.1 为什么需要场景说明文档

CLAUDE.md 是项目级概览,不够细。每个场景的节点层级、组件配置需要单独文档化。让 AI 知道”这个场景有什么节点,每个节点挂载什么组件”。

我之前踩过一个坑:让 AI 写个暂停功能,它生成的代码去查找 PauseButton 节点。但我这个节点其实在 UIRoot/PauseLayer/PauseButton,层级差了两层。AI 不知道,我也忘了说,结果代码跑起来报错。

场景文档就是为了避免这种事儿。把每个场景的结构写清楚,AI 查代码时就能准确定位。

3.2 用 Prompt 自动生成场景文档

手动写文档太累,我用 AI 来生成。下面是 Prompt 模板,你可以直接复制用:

我有一个 Cocos Creator 3.8 的游戏项目,请帮我生成场景说明文档。

项目信息:
- 游戏类型:休闲小游戏
- 引擎版本:Cocos Creator 3.8

请根据以下信息生成文档:
1. 场景名称:{scene_name}
2. 场景用途:{scene_purpose}
3. 主要节点层级(请描述):
   - {node_structure}

输出格式要求:
- 场景概述(一句话说明场景用途)
- 节点层级树(用树形结构展示,标注组件)
- 组件职责说明(每个组件干什么)
- 代码引用注意事项(容易踩坑的地方)

使用时把 {scene_name}{scene_purpose}{node_structure} 替换成你的实际内容就行。

3.3 实战示例:生成 Game.scene 文档

我用这个 Prompt 生成了一个 Game.scene 的文档。输入如下:

1. 场景名称:Game.scene
2. 场景用途:主游戏场景,包含游戏逻辑层和 UI 层
3. 主要节点层级:
   - Canvas(UI根节点)
     - UIRoot(UI层容器)
       - ScoreLabel(分数显示,挂载 Label 组件)
       - PauseButton(暂停按钮,挂载 Button 组件)
   - GameRoot(游戏逻辑层)
     - PlayerNode(玩家角色,挂载 PlayerController)
     - EnemyRoot(敌人容器)

AI 输出的文档:

# Game.scene 场景说明文档

## 场景概述
主游戏场景,承载游戏核心逻辑与 UI 展示。

## 节点层级树
Canvas (UI根节点)
├── UIRoot (UI层容器)
│   ├── ScoreLabel [Label] - 分数显示
│   └── PauseButton [Button] - 暂停按钮
└── GameRoot (游戏逻辑层)
    ├── PlayerNode [PlayerController] - 玩家角色
    └── EnemyRoot - 敌人容器

## 组件职责说明
| 组件 | 挂载节点 | 职责 |
|------|---------|------|
| PlayerController | PlayerNode | 处理玩家输入、移动逻辑 |
| Label | ScoreLabel | 显示分数文本 |
| Button | PauseButton | 暂停按钮交互 |

## 代码引用注意事项
1. 查找 UI 节点要从 Canvas 开始:`this.node.getChildByName('Canvas').getChildByName('UIRoot')`
2. ScoreLabel 在 UIRoot 下,不是直接在 Canvas 下
3. PlayerNode 在 GameRoot 下,跟 Canvas 是同级关系

这个文档放在项目的 docs/ 目录,CLAUDE.md 里加一行引用:详细场景结构见 docs/Game.scene.md

3.4 文档更新与维护策略

文档写完不是一劳永逸。场景结构变了,文档也得跟着改。我目前的做法是:

每次改完场景结构,顺手更新文档。大概 5 分钟的事,比重新解释给 AI 省事多了。

有些团队把文档生成加到 CI/CD 流程里,自动触发。但我觉得对于小团队,手动更新更实际——毕竟场景结构不会天天大改。

4. MCP Server 方案:让 AI 直接与引擎交互

4.1 什么是 MCP Server

MCP(Model Context Protocol)是一种协议,让 AI 通过 JSON-RPC 接口跟外部工具交互。Skywork AI 做了一个 Cocos Creator MCP Server,AI 可以直接跟编辑器通信。

说白了就是:AI 不用你手动告诉它场景结构,它可以自己去问编辑器。

4.2 MCP Server 能做什么

根据 Skywork AI 的博客,Cocos MCP Server 支持这些功能:

  • AI 通过工具调用获取场景信息
  • AI 直接在编辑器中创建节点
  • AI 读取预制体内容
  • AI 查询组件配置

这比 CLAUDE.md 强多了,因为信息是实时的。你改了场景,AI 马上就能知道,不用同步文档。

4.3 MCP Server 的门槛与局限

但 MCP Server 也不是没门槛:

配置复杂:需要启动 WebSocket 服务,配置端口、权限。搞不好要折腾半天。

AI 支持有限:目前只有 Claude Code 支持 MCP 协议,Cursor、Copilot 还不支持。

文档稀少:Cocos MCP Server 的文档和社区资源不多,遇到问题不太好查。

所以如果你只是个人开发者,想快速解决问题,CLAUDE.md + 场景文档方案更合适。MCP 更适合有技术能力的团队长期投入。

4.4 MCP 与 CLAUDE.md 的配合使用

其实这两套方案不是替代关系,是互补关系:

  • CLAUDE.md 提供静态上下文:项目概况、命名规范、设计理念
  • MCP 提供动态交互:实时获取场景信息、创建节点

如果你配置了 MCP,CLAUDE.md 依然有用。MCP 只能回答”现在有什么”,没法告诉 AI “为什么这么设计”、“命名规范是什么”。这些还得写在 CLAUDE.md 里。

5. 实战总结与行动建议

5.1 最小可行方案(今天就能开始)

如果你只是想让 AI 理解项目,不需要什么高级配置,三步搞定:

第一步:创建 CLAUDE.md 文件,写上项目基本信息。引擎版本、游戏类型、场景结构概述。

第二步:用本文第 3 章的 Prompt 模板,生成 3 个核心场景的说明文档。Boot、Game、Result,够用了。

第三步:把场景文档放在 docs/ 目录,CLAUDE.md 里加引用。

半小时内就能完成。之后 AI 问你项目结构,直接把文档甩给它。

5.2 进阶方案(有开发能力的团队)

如果你愿意投入更多,可以这样做:

配置 Cocos MCP Server:Skywork AI 的开源实现,文档还算清晰。配置好后 AI 能实时获取场景信息。

开发场景导出脚本:写个 Cocos 扩展,自动导出场景结构到 JSON 或 Markdown。比手动描述更准确。

自动化更新:把导出脚本加到构建流程,每次构建自动更新 CLAUDE.md。

这套方案需要一定的开发工作量,适合中大型团队。

5.3 长期目标

理想状态是:AI 真正理解游戏项目,像理解 Web 项目一样。编辑器与 AI 深度融合,游戏开发文档化成为行业标准。

Unity 已经有了 Bezi 这种实时索引工具,Cocos 估计也会跟进。但在那之前,文档化是最靠谱的方案。

结论

AI 辅助游戏开发有个根本障碍:AI 看不见编辑器里的内容。场景层级、节点结构、组件配置,这些 AI 都不知道。解决办法是文档化——把 AI 看不见的东西写下来。

CLAUDE.md 是项目级上下文,场景说明文档是细粒度补充。两者配合,AI 就能准确定位节点、理解组件职责。如果你有开发能力,还可以配置 MCP Server,让 AI 实时获取场景信息。

今天就试试:创建一个 CLAUDE.md 文件,用本文的 Prompt 生成第一个场景文档。如果你有其他实践心得,欢迎在评论区分享。

用 AI 生成 Cocos 场景说明文档的完整流程

从零开始配置 CLAUDE.md,生成场景文档,让 AI 理解你的游戏项目。

⏱️ 预计耗时: 30 分钟

  1. 1

    步骤1: 创建 CLAUDE.md 文件

    在项目根目录创建 CLAUDE.md,写入引擎版本、游戏类型、场景结构概述、核心节点命名规范、已实现组件清单等基本信息。
  2. 2

    步骤2: 生成场景说明文档

    使用本文提供的 Prompt 模板,为 Boot、Game、Result 等核心场景生成说明文档,包含节点层级树、组件职责说明和代码引用注意事项。
  3. 3

    步骤3: 组织文档目录

    将场景文档放在 docs/ 目录,在 CLAUDE.md 中添加引用,例如:详细场景结构见 docs/Game.scene.md。
  4. 4

    步骤4: 维护和更新

    每次修改场景结构后同步更新文档,或配置 MCP Server 实现自动同步。小团队手动维护 5 分钟即可完成。

常见问题

CLAUDE.md 文件应该放在哪里?
CLAUDE.md 放在项目根目录,Claude Code 会自动读取。Cursor 用户可以创建 .cursorrules 文件,Copilot 用户创建 .github/copilot-instructions.md,作用类似。
场景文档必须手动写吗?
不需要。本文提供了 Prompt 模板,你只需要描述场景名称、用途和节点层级,AI 就能生成结构化的场景说明文档。也可以开发 Cocos 扩展自动导出场景结构。
MCP Server 和 CLAUDE.md 有什么区别?
CLAUDE.md 是静态上下文,提供项目概况和命名规范;MCP Server 是动态交互,AI 可以实时获取场景信息。两者是互补关系,不是替代关系。
Cocos Creator 的 .scene 文件 AI 能直接读吗?
AI 可以读取 .scene 文件的 JSON 内容,但无法理解其逻辑组织结构。场景文件的层级关系、组件配置需要文档化才能让 AI 准确理解。
文档更新频率应该是多少?
场景结构变动时同步更新即可。小团队手动维护约 5 分钟,也可以将文档生成脚本加入 CI/CD 流程自动触发。

9 分钟阅读 · 发布于: 2026年5月19日 · 修改于: 2026年5月19日

当前属于系列阅读 第 3 / 3 篇

AI 辅助 Cocos 小游戏开发实战

如果你是从搜索进入这篇文章,建议顺手补上上一篇或继续下一篇,这样更容易把同一主题读完整。

查看系列总览

相关文章

BetterLink

想持续收到这个主题的更新?

你可以直接关注作者更新、订阅 RSS,或者继续沿着系列入口往下读,避免下次又回到搜索结果重新找。

关注公众号

评论

使用 GitHub 账号登录后即可评论