用 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
Cocos Creator MCP 設定教學:連接 Cursor / Claude
搭配 YouTube 實操錄影:安裝 Cocos Creator MCP 外掛、啟動本機橋接,並在 Cursor 或 Claude 中完成 Model Context Protocol 設定與連線驗證。
- cocos
- cocos-creator
- mcp
- cursor
5 分鐘用 AI Studio 將 PSD 導入 Unity UI
用 VberAI AI Studio 將分層 PSD 快速轉為 Unity UI 預製體,並說明 Canvas 設定、圖層規範與常見修復方法。
- vberai
- ai-studio
- unity
- psd