← Voltar ao blog

Construa um RPG 3D com Unity MCP: Controle em Terceira Pessoa, Combate e Missões

Um guia prático de Unity MCP para um protótipo de RPG 3D jogável: movimento em terceira pessoa, combate corpo a corpo em tempo real, máquinas de estado para inimigos e missões no Cursor ou outras IDEs com MCP. Polir a UI depois, se necessário.

Publicado
  • Unity MCP
  • 3D RPG
  • Unity
  • combat
  • AI game development

Um protótipo de RPG 3D pronto para demonstração geralmente precisa destas peças primeiro: movimento e câmera em terceira pessoa ajustáveis, um loop de combate corpo a corpo em tempo real, um inimigo com uma pequena máquina de estados, uma missão ou diálogo acionável e um HUD que mostre saúde ou progresso da missão. Este guia segue essa ordem de construção. Suponha que você conduz um projeto Unity aberto a partir do Cursor, Claude Code, Codex ou outra IDE com capacidade MCP através do Unity MCP—lendo e escrevendo cenas, GameObjects e C#, não apenas colando arquivos no disco.

Instale e conecte: Guia de instalação do Unity MCP. As versões suportadas do editor seguem a página do produto (comumente Unity 2022.3+ / Unity 6).

Escopo de uma fatia jogável mínima

Entregue a v1 somente se você puder aceitar:

  1. Movimento WASD, olhar com mouse, pular; chão e inclinações suaves estáveis
  2. Um ataque corpo a corpo (animação placeholder OK) que atinge um collider e causa dano
  3. Um inimigo: patrulha → detecta o jogador → persegue / ataca; desabilita ou destrói na morte
  4. Um NPC: aproximar-se para falar ou aceitar uma missão; objetivo “derrote aquele inimigo”, depois atualize o registro
  5. HUD simples: barra de saúde + uma linha de missão

Bloqueie a arte com primitivos, se necessário. Trate menu principal, grades de inventário, HUD polido como uma etapa posterior de UI (veja abaixo).

Prontidão do projeto e do MCP

Antes dos prompts de gameplay:

  • Projeto Unity aberto; a cena alvo pode entrar em Play
  • Servidor Unity MCP rodando; a IDE com IA pode listar raízes da Hierarquia (teste somente leitura)
  • Commit de linha de base feito; faça commit novamente antes de grandes edições

Verificação somente leitura:

Liste os GameObjects raiz na cena ativa. Não mude nada.

Só então escreva. Mantenha a ponte em localhost—não exponha a porta publicamente. Dica de prompt: Unity MCP com Claude Code e Cursor.

Jogador: controle em terceira pessoa primeiro

Estrutura mínima (renomeie para corresponder ao seu projeto):

Player
├── CharacterController ou Rigidbody + CapsuleCollider
├── CameraPivot (yaw)
│   └── CameraArm (pitch) → Main Camera
└── AttackHitbox (trigger, desligado por padrão)

Seja explícito sobre entrada, câmera e caminhos:

Crie Assets/Scripts/Player/PlayerController.cs: terceira pessoa; WASD relativo à frente da câmera; yaw/pitch do mouse (clamp de pitch −30°–60°); Espaço para pular; anexe ao Player. Chão via CharacterController.isGrounded ou equivalente.

Depois ajuste a sensação:

Velocidade de movimento ~5 com suavização leve de aceleração; pulo ~1,2 m; leve amortecimento de follow da câmera—sem whip-pan.

Revise inclinações, direção aérea e clipping da câmera antes de comemorar “script gerado”.

Combate: um loop de combate corpo a corpo aceitável

Pule árvores de habilidades na v1. Objetivo: pressione atacar → habilite hitbox por N frames → dano → atualize HUD.

Adicione PlayerCombat.cs: ataque com LMB, cooldown de 0,6 s; habilite AttackHitbox durante a janela; cause 15 de dano a IDamageable. Inimigos implementam IDamageable e HP atual.

Atualizações opcionais ainda simples:

Trave o movimento brevemente no ataque; pequeno hitstun nos inimigos; 0,4 s de i-frames com piscar após dano no jogador.

Levante mudanças de saúde como eventos/callbacks para que a vinculação do HUD fique limpa—evite scripts de UI Find-ing o mundo.

Inimigos: Idle / Patrol / Chase / Attack

Nenhuma árvore de comportamento necessária. Quatro estados cobrem um mob de campo:

Idle → Patrol → Chase → Attack
         ↑________________↓ (perdeu o alvo)

Crie Assets/Scripts/Enemy/EnemyAI.cs: patrulha de dois pontos; entre em Chase a 12 m; Attack a 2 m (cooldown de 1,2 s, 8 de dano); retorne a Patrol 3 s após perder o jogador; em 0 HP toque morte ou SetActive(false).

Prefira NavMeshAgent se você já assar; caso contrário, movimento simples de seek/face para que a primeira semana não fique bloqueada na navegação. Animator opcional—feedback de facing e cor são suficientes no início.

Missões e NPCs: uma linha principal

“Sensação de missão” é gatilho → rastreamento → conclusão, não um editor de missões completo.

Mantenha dados simples:

  • QuestId, título, descrição, contagem de progresso, flag de concluída
  • NPC Interact (E ou trigger) abre diálogo e StartQuest
  • Morte do inimigo chama QuestManager.NotifyKill(enemyId)

Crie um singleton QuestManager: aceite slay_wolf_01 (derrote 1 Wolf); avance na morte do Wolf; atualize a cópia do registro de missão quando concluído. NPC Mago: jogador entra no trigger, pressiona E para iniciar essa missão.

TMP/Text é suficiente para diálogo v1; ramificações depois.

HUD: placeholders primeiro, UI polida depois

Enquanto o gameplay está inacabado, conecte Slider / TMP_Text do engine:

Vincule OnHealthChanged do jogador à barra do HUD; vincule o título atual do QuestManager a uma linha TMP no topo da tela.

Quando menus, inventário ou barras de habilidades precisarem de UI de nível de design (PSD/Figma em camadas, painéis gerados por NL, divididos e exportados como prefabs Unity), use um fluxo de trabalho de canvas como AI Studio:

  1. Gere ou importe HUD / menu de RPG
  2. Componentize e exporte para e.g. Assets/UI/
  3. Retorne à IDE com IA + Unity MCP para vincular botões, barras e texto de missão aos eventos de gameplay existentes

Lide com recortes difíceis para alpha primeiro, se necessário. Estrutura pode vir do canvas; vinculações e lógica de combate permanecem no Unity via MCP—não espere que a ferramenta de canvas crie um FSM de combate completo.

Detalhe de importação: Figma para Unity UI.

Ordem de construção sugerida

MCP: controle do jogador → um loop de combate corpo a corpo → um FSM de inimigo → uma missão + NPC
        ↓
MCP: fiação de HUD placeholder (HP / linha de missão)
        ↓ (opcional)
Ferramenta de canvas: menu / HUD polido → exporte para Unity
        ↓
MCP: vincule UI polida aos eventos existentes

Sensação, números, IA, navegação → continue usando Unity MCP.
Hierarquia visual em tela cheia, reskins, prefabs reexportados → retorne à ferramenta de canvas.

Limites de prompt que realmente ajudam

Prompts vagos desperdiçam ciclos. Fixe:

  • Caminhos e pontos de anexo — qual pasta, qual objeto
  • Aceitação — e.g. “dentro de 10 s de Play, mate um lobo e veja a missão concluída”
  • Fora do escopo — e.g. “não reconstrua toda a pilha de entrada; não delete a câmera”
  • Uma preocupação por prompt — controle, depois combate, depois inimigo

Sempre teste você mesmo. MCP remove cliques repetitivos; não substitui o julgamento de design.

Checklist de aceitação

  • Movimento/câmera em terceira pessoa permanece controlável por ~2 minutos sem clipping óbvio/perda de controle
  • Corpo a corpo atinge de forma confiável; cooldown é perceptível
  • Patrulha vs perseguição é legível; morte tem feedback claro
  • Missão pode ser aceita e concluída; cópia do HUD atualiza
  • Mudanças de saúde chegam à UI (placeholders OK)

Próximos passos

  1. Conclua o guia de instalação do Unity MCP e um teste somente leitura
  2. Entregue “movimento + um inimigo + uma missão” nessa ordem
  3. Adicione exportação de UI polida somente quando o HUD precisar parecer finalizado

Mais guias que podem interessar