用 Unity MCP 做 3D RPG:第三人称、战斗与任务怎么落地
以可演示的 3D RPG 原型为目标:在 Cursor 等 AI IDE 中通过 Unity MCP 推进角色控制、实时战斗、敌人状态机与任务接线;成品 UI 需要时再处理界面导出。
- Unity MCP
- 3D RPG
- Unity
- combat
- AI game development
一款能给人试玩的 3D RPG 原型,通常要先跑通这些模块:可调的第三人称移动与镜头、至少一轮实时近战、一个带状态机的敌人、一个可触发的任务/对话,以及能反映血量或任务进度的 HUD。下面按实现顺序写,默认你在 Cursor、Claude Code 或 Codex 等支持 MCP 的 AI IDE 里,通过 Unity MCP 读写已打开的 Unity 工程(场景、GameObject、C#),而不只是往磁盘里贴脚本。
安装与连线见:Unity MCP 安装教程。兼容范围以官网为准(常见为 Unity 2022.3+ / Unity 6)。
先定最小可玩范围
建议第一版只验收:
- 玩家 WASD 移动、鼠标视角、跳跃;地面与斜坡基本稳定
- 一次近战攻击(动画可先占位),能打中带 Collider 的敌人并扣血
- 一个敌人:巡逻 → 发现玩家 → 追逐 / 攻击;死亡后停用或销毁
- 一个 NPC:靠近触发对话或接取任务;任务目标「击败该敌人」完成后更新日志
- 简单 HUD:血条 + 当前任务一行字
场景美术可以先用原色方块与平面地面;主菜单、背包格、精致 HUD 等界面要像样时,再单独走 UI 流程(见后文)。
工程与 MCP 准备
开始写玩法前确认:
- Unity 工程已打开,目标场景可 Play
- Unity MCP Server 在跑,AI IDE 里能列出当前 Hierarchy 根对象(只读冒烟)
- 版本管理已提交一次基线;大改前再 commit
只读验证示例:
列出当前活动场景的根级 GameObject,不要修改任何内容。
通过后再做写入。MCP 桥接保持本机 localhost,不要把端口暴露到公网。更细的客户端提示写法见:用 Claude Code 与 Cursor 操作 Unity MCP。
玩家:第三人称控制先跑通
推荐最小骨架(命名可按项目习惯改):
Player
├── CharacterController 或 Rigidbody + CapsuleCollider
├── CameraPivot(Yaw)
│ └── CameraArm(Pitch)→ Main Camera
└── AttackHitbox(触发器,默认关闭)
对 MCP 下意图时写清输入、相机与脚本路径,例如:
创建
Assets/Scripts/Player/PlayerController.cs:第三人称;WASD 相对相机平面移动;鼠标控制 yaw/pitch(pitch 限制 -30°~60°);空格跳跃;脚本挂到 Player。地面用 CharacterController.isGrounded 或等价检测。
再调手感:
移动速度约 5,加速度平滑一点;跳跃高度约 1.2m;相机跟随有轻微阻尼,避免瞬时甩尾。
审查重点:斜坡是否打滑、空中转向是否过猛、相机是否穿模。这些比「脚本是否生成成功」更决定 RPG 探索手感。
战斗:先做可验收的近战一轮
第一版不要上复杂技能树。目标是:按下攻击 → 开 Hitbox 若干帧 → 对敌人造成伤害 → 刷新 HUD。
示例提示:
为 Player 加
PlayerCombat.cs:鼠标左键攻击,冷却 0.6s;攻击窗口内启用AttackHitbox;对带IDamageable的目标造成 15 点伤害。敌人实现IDamageable与当前生命值。
可选增强(仍保持简单):
攻击时短暂锁移动;命中时对敌人施加短硬直;玩家受伤后 0.4s 无敌闪烁。
把血量变化做成事件或回调,方便后面绑 HUD,避免在 UI 脚本里硬查 Find。
敌人:Idle / Patrol / Chase / Attack 即可
第一版不必上行为树。四态足够跑通「野外怪」:
Idle → Patrol → Chase → Attack
↑________________↓(丢失目标)
示例提示:
为
Assets/Scripts/Enemy/EnemyAI.cs:两点巡逻;玩家进入 12m 进入 Chase;进入 2m 进入 Attack(冷却 1.2s,伤害 8);丢失玩家 3s 回 Patrol;生命归零后播死亡或直接SetActive(false)。
导航:有 NavMesh 就用 NavMeshAgent;没有就先用简易朝向移动,避免第一周卡在烘焙上。动画有就接 Animator,没有就靠朝向与色块反馈。
任务与 NPC:一条主线就够
RPG 原型的「任务感」来自 可触发 → 可追踪 → 可完成,不是任务编辑器本身。
最小数据可以很朴素:
QuestId、标题、描述、目标计数、是否完成- NPC 上的
Interact(按 E 或触发器)打开对话并StartQuest - 敌人死亡时
QuestManager.NotifyKill(enemyId)
示例提示:
创建
QuestManager单例:接取任务slay_wolf_01(击败 1 只 Wolf);Wolf 死亡时推进进度;完成后更新任务日志文案。场景中 Wizard NPC:玩家进入 Trigger 按 E 开始该任务。
对话第一版用 Text / TMP 即可;分支对话以后再加。
HUD:先占位,再考虑成品界面
玩法未通前,用引擎里的 Slider / TMP_Text 占位,并用 MCP 接线:
把玩家
OnHealthChanged绑到 HUD 血条;把QuestManager当前任务标题绑到屏幕上方一行 TMP。
当主菜单、背包、精致技能栏需要设计稿级 UI(分层 PSD / Figma、自然语言生成面板、拆分后导出 Unity 预制体)时,再引入画布工具 AI Studio:
- 生成或导入 RPG HUD / 菜单
- 组件化后导出到例如
Assets/UI/ - 回到 AI IDE + Unity MCP,把按钮、血条、任务条接到已有玩法事件
复杂去背可先处理 Alpha,再整理进引擎。界面结构可以在画布完成;交互绑定与战斗逻辑仍在 Unity 侧经 MCP 完成——不要指望画布产品写出完整的战斗状态机。
设计稿进 Unity 的细流程见:Figma 到 Unity UI。
推荐推进顺序
MCP:玩家控制 → 近战一轮 → 一敌状态机 → 一任务 + NPC
↓
MCP:占位 HUD 接线(血量 / 任务行)
↓(可选)
画布工具:成品菜单 / HUD → 导出 Unity
↓
MCP:把成品 UI 接到已有事件
改手感、数值、AI、导航 → 继续用 Unity MCP。
改整屏视觉层级、换皮、重导出预制体 → 再回画布工具。
给模型的提示要写清边界
效果差时,多半是提示太宽。可固定这几条:
- 路径与挂点:脚本落到哪个文件夹、挂到哪个对象
- 验收标准:例如「Play 后 10 秒内能打死一只狼并看到任务完成」
- 禁止范围:例如「不要重构全部输入系统;不要删除现有相机」
- 一次一事:先控制,再战斗,再敌人,避免一条提示改半个工程
生成后务必自己 Play 验收;MCP 省的是重复点选,不是跳过设计判断。
验收清单
- 第三人称移动与镜头可连续玩 2 分钟无明显穿透/失控
- 近战能稳定命中,冷却可感知
- 敌人巡逻与追逐可区分,死亡有明确反馈
- 任务可接取、可完成、HUD 文案会变
- 血量变化能反映到 UI(占位亦可)
下一步
- 完成 Unity MCP 安装教程 并做只读冒烟
- 按上文顺序打通「移动 + 一怪 + 一任务」
- 需要成品界面时,再处理 UI 导出与接线
继续阅读
你可能还会喜欢这些文章
2026 的 AI 游戏开发:用 Unity / Godot MCP 留在编辑器闭环里
梳理 AI 辅助 Unity、Godot 的工作流:MCP 适合什么、人要守住什么,以及多引擎团队如何共用同一套提示习惯。
- ai-game-development
- unity-game-development
- godot-game-engine
- unity-mcp
用 Claude Code 与 Cursor 操作 Unity MCP:少手写引擎里的重复改动
通过 Model Context Protocol 将 Claude Code、Cursor、Codex 接到 Unity:安装本地桥接、预览与调试场景,说明与仅改磁盘文件的 AI 辅助有何不同。
- unity-mcp
- mcp-for-unity
- claude-unity-mcp
- unity-claude-code
Figma 到 Unity UI:用 VberAI AI Studio 从设计稿到预制体
把 Figma 设计导入 Unity UI 层级:在 VberAI AI Studio 中导入、自然语言微调后导出预制体,并说明与 Figma MCP、Unity MCP 的分工。
- figma-to-unity
- figma-to-code
- figma-ai
- figma-design