跳到正文
Qiita · Unity 开发社区· 来源· Skillselion·· 4 小时前AI 评分60

Claude Code 的游戏开发技能,在 Unity、Godot、Web 游戏中该选哪个

Claude Code のゲーム開発スキル、Unity・Godot・Web ゲームでどれを入れるか

正文 · AI 翻译

如果要用 Claude Code 制作游戏,最先添加的是 gamedev-skills/awesome-gamedev-agent-skills 中的 router 技能。它根据 project.godot、ProjectSettings/ProjectVersion.txt、package.json 的 phaser 依赖等判定唯一的一个引擎,并仅加载所需的技能。Unity 由 unity-csharp-scripting 负责实际操作,Godot 由 godot-gdscript 负责,Web 则由 phaser-core 或 threejs-scene-setup 负责。

本文是 Skillselion 指南 面向 Claude Code 的游戏开发技能(Game Development Skills for Claude Code) 的日语改编版。英文版介绍了技能的全貌,而本文聚焦于"在自己的引擎中到底该引入哪些",仅记录了实际在 GitHub 上阅读并核实了各技能 SKILL.md 后的内容。

Claude Code 的游戏开发技能,该从什么开始入手?

请从 router 安装。根据 Skillselion 的指南,router 拥有 6,060 次安装(skills.sh 注册表,截至 2026 年 10 月 23 日)。

npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill router

router 的 SKILL.md 阅读后可知,处理流程分为以下 6 个阶段。

  1. 从项目文件中判定引擎和版本
  2. 从请求文本中分类出「领域(discipline)」「类型」「工作流」
  3. 确定所需的最小技能组合
  4. 只打开所选 SKILL.md 的正文(references/ 仅在需要时打开)
  5. 按引擎基础 → 领域 → 类型 → 工作流的顺序进行组装
  6. 若引擎不明确,仅询问一次;若无偏好,则默认使用 Godot

关键在于第 4 点。若将所有游戏开发类技能全部纳入,无关的 SKILL.md 也会被加载进上下文。router 明确注明「不按类别批量读取」,因此当你想修改 Godot 的 2D 移动时,Unreal 的技能不会被读取。

router 如何区分 Unity、Godot 和 Web

SKILL.md 中的判定表从上到下依次匹配,在第一个命中的引擎处停止。如果只筛选日本常用的引擎,则如下所示。

引擎 用于判定的文件 加载的技能组
Godot project.godot skills/godot/
Unity Assets/ 和 ProjectSettings/ProjectVersion.txt 两者 skills/unity/
Phaser 将 phaser 添加到 package.json 的依赖中 phaser-core 等
three.js 将 three 添加到 package.json 的依赖中 threejs-scene-setup 等

在细节上帮大忙的是 engine-detection.md 中的歧义消解规则。Godot 的 C# 项目中有 .csproj,容易与 Unity 混淆,但如果存在 project.godot 就判定为 Godot,C# 相关工作则交给 godot-csharp。要判定为 Unity,需要 Assets/ 和 ProjectSettings/ 的组合,仅有 .cs 文件不足以认定为 Unity。

还有一点,判定引擎之后还会读取版本。Unity 读取 ProjectVersion.txt 和 Packages/manifest.json,Phaser 或 three.js 则读取 package.json 加上锁文件。文中写明,对于已有项目,除非要求迁移,否则按固定版本处理。这是为了防止被教程中的过时 API 覆盖的设计。

在 Unity 中使用该选哪个技能

Unity 的 C# 脚本由 unity-csharp-scripting 负责。Skillselion 的发布页面显示 5,384 次安装(skills.sh 注册表,截至2026年10月下旬)。SKILL.md 中明确标注适用对象为 Unity 6.3 LTS(6000.3)。

npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill unity-csharp-scripting

内容以 MonoBehaviour 生命周期的正确使用为主。用 Awake 缓存引用,不要每帧调用 GetComponent。需要公开的数值不要设为 public 字段,而是用 [SerializeField] private。物理用 FixedUpdate,摄像机跟随用 LateUpdate。对于接触 Unity 的人来说这些是常识,但要让智能体遵守这些前提,实际操作起来还挺费事的。

在实际应用中最可能发挥作用的是 .meta 文件的检查。如果在编辑器外部创建、移动或重命名脚本,应同时运行 .meta,最后执行技能自带的 scripts/check_unity_project.py,以检测 GUID 重复或在没有 .meta 的情况下移动的文件。Claude Code 不打开编辑器而直接操作文件,因此这里最容易出问题。根据 SKILL.md,脚本只需 Python 3.10 或更高版本即可运行,无需其他依赖。

输入相关的功能由另一个技能承担。当存在 *.inputactions 文件时,router 会将其视为 unity-input-system(Claude Code 技能) 的候选。面向 Unity 的技能除此之外还有物理、动画、ScriptableObject、2D Tilemap、NavMesh、构建流水线,共 8 个。

如果使用 Godot 该用哪个技能

GDScript 对应的是 godot-gdscript。发布页面显示 5,908 次安装(skills.sh 注册表,截至 2026 年 10 月下旬),目标版本为 Godot 4.7(GDScript 2.0)。

npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill godot-gdscript

SKILL.md 从"能加类型标注的地方全部加上"开始,接着是依次排列的规则:用 @onready 获取节点引用(在 _init() 时子节点尚不存在),移动和物理写在 _physics_process 中。文档中还注明,将 Godot 3.x 的脚本迁移到 4.x 时(从 yield 到 await、从 export 到 @export)同样适用这些规则,因此在让 Claude Code 修复旧教程代码的场景中也能派上用场。

Godot 是这个仓库中支持最丰富的,共有 16 个技能。路由甚至以"覆盖面最广的引擎"为由,将"若引擎无偏好则默认 Godot"作为规则写入。若是 2D 动作,godot-2d-movement(Claude Code 技能) 也应一并纳入。在路由的示例中,"给 Godot 玩家添加二段跳"这样的请求会同时加载 godot-2d-movement 和 platformer。

如果是浏览器游戏,是 Phaser 还是 three.js 的技能?

2D 的话用 phaser-core(展示页 4,961 次安装),3D 的话用 threejs-scene-setup(同为 5,019 次安装,均来自 skills.sh 注册表,截至2026年10月下旬)。

# 2D (Phaser)
npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill phaser-core

# 3D (three.js)
npx skills add https://github.com/gamedev-skills/awesome-gamedev-agent-skills --skill threejs-scene-setup

phaser-core 的方针是:新建项目使用 Phaser 4.2,已有的 Phaser 3.90 项目在未要求迁移的情况下保持原样。"首先确认已安装的主版本"排在步骤第 1 位。另外还有一个注意事项:场景实例会在重启之间被复用,因此每次运行的状态应在 init() 中重置,而非在构造函数中重置。这一点虽然不起眼,但却是重试时残留上一次得分这一 Bug 的典型成因。

threejs-scene-setup 面向 r186,其中指示渲染循环使用 renderer.setAnimationLoop 而非手写的 requestAnimationFrame,delta 时间使用 Timer 而非 Clock(在 r183 中已弃用)。由于 three.js 的 API 变化很快,SKILL.md 中记录了这些"当前做法"确实很有帮助。

当 package.json 中同时包含 phaser 和 three 时,router 会优先使用当前工作文件中实际被 import 的那一个;若仍无法判断,则询问应使用哪一个。

可以跨引擎使用的领域分类技能有哪些

引擎技能负责 API 的编写方式,领域技能(discipline)负责不依赖引擎的思维方式。在 router 的 SKILL.md 中,当两者重叠时,角色分工已确定为"引擎技能持有 API 与语法,领域技能将代码委托给引擎技能"。

按指南中的数据(skills.sh 注册表,截至 2026 年 10 月 23 日)以人气排序,结果如下:

对于"Unity 游戏帧率降至 30 FPS"之类的请求,文中举例说明了如下顺序:router 会先读取 performance-optimization(Claude Code 技能),先获取性能分析数据,然后再进入引擎技能。

有没有不使用路由器的选项?

如果在引擎尚未确定的阶段,sickn33/agentic-awesome-skills 中的 game-development 也是候选之一。根据指南,安装量为 3,821,它根据平台、2D/3D 及引擎适配性进行路由,并为 60 FPS 设定 16.67 ms 的帧预算。不过,如果已确定使用 Unity 或 Godot,那么按引擎细分的 gamedev-skills 一侧会更为具体。

总结:各引擎的嵌入方法

使用的工具 除 router 外还需加入的技能
Unity unity-csharp-scripting(如果也涉及输入处理则加 unity-input-system)
Godot godot-gdscript(如果是 2D 动作类则加 godot-2d-movement)
Phaser phaser-core
three.js threejs-scene-setup
任选其一 game-feel、game-ui-ux、level-design 中所需的内容

首先引入 router,告诉 Claude Code 你正在使用的引擎,然后再根据当前任务添加对应的领域技能。这个顺序最不会污染上下文。其他游戏类工具都汇总在 Skillselion 的 游戏开发中心 中。如果还涉及 3D 建模,指南《推荐用于 Claude Code 的 Blender 技能》也有参考价值。


首发于 Skillselion《Claude Code 游戏开发技能》(2026年10月23日更新)。安装量数据基于 Skillselion 的目录,该目录每日从 skills.sh、GitHub、MCP 注册表更新,按实际安装量排序。

本文作者为 Skillselion 运营团队成员。本文中的安装量数据来自我们运营的目录。Skillselion 与 Anthropic、OpenAI、Cursor 均无合作关系。

来源:Qiita · Unity 开发社区 · qiita.com