Costruisci un RPG 3D con Unity MCP: Controllo in Terza Persona, Combattimento e Missioni
Guida pratica a Unity MCP per un prototipo RPG 3D giocabile: movimento in terza persona, combattimento corpo a corpo in tempo reale, macchine a stati per i nemici e missioni in Cursor o altri IDE AI MCP. Rifinisci la UI più tardi.
- Unity MCP
- 3D RPG
- Unity
- combat
- AI game development
Un prototipo RPG 3D pronto per la demo di solito richiede prima questi elementi: movimento in terza persona e camera regolabili, un loop di combattimento corpo a corpo in tempo reale, un nemico con una piccola macchina a stati, una missione o dialogo attivabile, e un HUD che mostri salute o avanzamento missione. Questa guida segue questo ordine di costruzione. Supponiamo che tu guidi un progetto Unity aperto da Cursor, Claude Code, Codex, o un altro IDE AI con capacità MCP tramite Unity MCP—leggendo e scrivendo scene, GameObject e C#, non solo incollando file su disco.
Installa e connetti: Guida all’installazione di Unity MCP. Le versioni supportate dell’editor seguono la pagina del prodotto (comunemente Unity 2022.3+ / Unity 6).
Definisci una fetta minima giocabile
Rilascia la v1 solo se puoi accettare:
- Movimento WASD, look con mouse, salto; terreno e pendenze dolci stabili
- Un attacco corpo a corpo (animazione segnaposto OK) che colpisce un collider e infligge danno
- Un nemico: pattuglia → rileva il giocatore → insegue / attacca; disabilita o distruggi alla morte
- Un NPC: avvicinati per parlare o accettare una missione; obiettivo “sconfiggi quel nemico”, poi aggiorna il registro
- HUD semplice: barra della salute + una riga di missione
Blocca l’arte con primitive se necessario. Tratta menu principale, griglie di inventario, HUD rifinito come una fase UI successiva (vedi sotto).
Progetto e prontezza MCP
Prima dei prompt di gameplay:
- Progetto Unity aperto; la scena target può entrare in Play
- Unity MCP Server in esecuzione; l’IDE AI può elencare le radici della Hierarchy (smoke test di sola lettura)
- Commit di base fatto; fai un altro commit prima di modifiche grandi
Controllo di sola lettura:
Elenca i GameObject radice nella scena attiva. Non cambiare nulla.
Solo dopo scrivi. Mantieni il bridge su localhost—non esporre la porta pubblicamente. Craft dei prompt: Unity MCP con Claude Code e Cursor.
Giocatore: controllo in terza persona prima
Scheletro minimo (rinomina per adattarlo al tuo progetto):
Player
├── CharacterController o Rigidbody + CapsuleCollider
├── CameraPivot (yaw)
│ └── CameraArm (pitch) → Main Camera
└── AttackHitbox (trigger, disattivato di default)
Sii esplicito su input, camera e percorsi:
Crea
Assets/Scripts/Player/PlayerController.cs: terza persona; WASD relativo alla direzione della camera; yaw/pitch del mouse (clamp pitch −30°–60°); Spazio per saltare; attacca a Player. Ground tramite CharacterController.isGrounded o equivalente.
Poi regola la sensazione:
Velocità di movimento ~5 con leggera accelerazione smoothing; salto ~1.2 m; leggero damping della camera—niente whip-pan.
Rivedi pendenze, sterzo in aria e clipping della camera prima di celebrare “script generato”.
Combattimento: un loop corpo a corpo accettabile
Salta gli alberi delle abilità nella v1. Obiettivo: premi attacco → abilita hitbox per N frame → danno → aggiorna HUD.
Aggiungi
PlayerCombat.cs: attacco con LMB, cooldown 0.6 s; abilitaAttackHitboxdurante la finestra; infliggi 15 danni aIDamageable. I nemici implementanoIDamageablee HP corrente.
Upgrade opzionali ma semplici:
Blocca brevemente il movimento durante l’attacco; breve hitstun sui nemici; 0.4 s di i-frame con blink dopo il danno al giocatore.
Solleva i cambi di salute come eventi/callback per mantenere pulito il binding HUD—evita script UI che fanno Find del mondo.
Nemici: Idle / Patrol / Chase / Attack
Nessun albero comportamentale richiesto. Quattro stati coprono un mob da campo:
Idle → Patrol → Chase → Attack
↑________________↓ (bersaglio perso)
Crea
Assets/Scripts/Enemy/EnemyAI.cs: pattuglia a due punti; entra in Chase entro 12 m; Attack entro 2 m (cooldown 1.2 s, 8 danni); ritorna a Patrol 3 s dopo aver perso il giocatore; a 0 HP esegui morte oSetActive(false).
Preferisci NavMeshAgent se già fai il bake; altrimenti semplice movimento seek/face per non bloccare la prima settimana sulla navigazione. Animator opzionale—facing e feedback colore sono sufficienti all’inizio.
Missioni e NPC: una linea principale
La “sensazione di missione” è trigger → traccia → completa, non un editor di missioni completo.
Mantieni i dati semplici:
QuestId, titolo, descrizione, contatore progresso, flag completato- NPC
Interact(E o trigger) apre dialogo eStartQuest - Morte nemico chiama
QuestManager.NotifyKill(enemyId)
Crea un singleton
QuestManager: accettaslay_wolf_01(sconfiggi 1 Lupo); avanza alla morte del Lupo; aggiorna il testo della missione quando completata. NPC Wizard: il giocatore entra nel trigger, premi E per iniziare quella missione.
TMP/Text va bene per il dialogo v1; rami più tardi.
HUD: segnaposto prima, UI rifinita dopo
Mentre il gameplay è incompleto, collega Slider / TMP_Text del motore:
Collega
OnHealthChangeddel giocatore alla barra HUD; collega il titolo corrente diQuestManagera una riga TMP in alto.
Quando menu, inventario o barre delle abilità richiedono UI di livello design (PSD/Figma a livelli, pannelli generati da NL, divisi ed esportati come prefab Unity), usa un workflow canvas come AI Studio:
- Genera o importa HUD / menu RPG
- Componentizza ed esporta in e.g.
Assets/UI/ - Torna all’IDE AI + Unity MCP per collegare bottoni, barre e testo missione agli eventi di gameplay esistenti
Gestisci prima i ritagli duri per l’alpha se necessario. La struttura può venire dal canvas; i binding e la logica di combattimento restano in Unity tramite MCP—non aspettarti che lo strumento canvas scriva una FSM di combattimento completa.
Dettaglio import: Figma to Unity UI.
Ordine di costruzione suggerito
MCP: controllo giocatore → un loop corpo a corpo → una FSM nemico → una missione + NPC
↓
MCP: wiring HUD segnaposto (HP / riga missione)
↓ (opzionale)
Strumento canvas: menu / HUD rifinito → esporta in Unity
↓
MCP: collega UI rifinita agli eventi esistenti
Sensazione, numeri, AI, navigazione → continua a usare Unity MCP.
Gerarchia visiva a schermo intero, reskin, prefab riesportati → torna allo strumento canvas.
Limiti dei prompt che aiutano davvero
I prompt vaghi sprecano cicli. Fissa:
- Percorsi e punti di attacco — quale cartella, quale oggetto
- Criteri di accettazione — e.g. “entro 10 s da Play, uccidi un lupo e vedi missione completata”
- Fuori scope — e.g. “non ricostruire l’intero stack di input; non cancellare la camera”
- Un solo aspetto per prompt — controllo, poi combattimento, poi nemico
Fai sempre Play-test da solo. MCP rimuove i clic ripetitivi; non sostituisce il giudizio di design.
Checklist di accettazione
- Movimento/camera in terza persona rimane controllabile per ~2 minuti senza clipping evidente o perdita di controllo
- Il corpo a corpo colpisce in modo affidabile; il cooldown è evidente
- Pattuglia vs inseguimento è leggibile; la morte ha feedback chiaro
- La missione può essere accettata e completata; il testo HUD si aggiorna
- I cambi di salute raggiungono la UI (segnaposto OK)
Prossimi passi
- Completa la Guida all’installazione di Unity MCP e un smoke test di sola lettura
- Rilascia “movimento + un nemico + una missione” in quest’ordine
- Aggiungi l’esportazione UI rifinita solo quando l’HUD deve apparire finito
Continua a leggere
Altre guide che potrebbero interessarti
Come Abbiamo Costruito un Server MCP in Tempo Reale per Godot
Dentro l'architettura MCP di VberAI per Godot: come un server MCP in tempo reale collega l'editor a client AI senza bloccare la scena.
- vberai
- godot
- mcp
- architecture
Guida all'installazione di Cocos Creator 2.x MCP: installa tramite pacchetti e connetti un IDE AI
Installa VberAI Cocos Creator 2.x MCP Pro passo dopo passo: estrai nella cartella packages del progetto, riavvia e attiva, avvia il server MCP locale e verifica la connessione in Cursor, Claude, Codex o altri IDE AI compatibili con MCP.
- cocos
- cocos-creator
- mcp
- cursor
Gli script compilano ma la gerarchia è sbagliata? Handoff UI per game dev e checklist MCP
Per programmatori Unity / Godot / Cocos: perché Cursor non sistema i layer della shell UI; checklist di accettazione dopo l'import del design, quando Unity MCP / Godot MCP convengono e binding logic dopo l'export Prefab di AI Studio.
- game-dev-ai
- Unity MCP
- Godot MCP
- Cocos MCP