← Kembali ke blog

Bina RPG 3D dengan Unity MCP: Kawalan Orang Ketiga, Pertempuran, dan Misi

Panduan praktikal Unity MCP untuk prototaip RPG 3D yang boleh dimainkan—pergerakan orang ketiga, pertempuran jarak dekat masa nyata, mesin keadaan musuh, dan penyambungan misi dalam Cursor atau IDE AI MCP lain. Kemudian sahaja poles UI apabila perlu.

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

Prototaip RPG 3D yang sedia demo biasanya memerlukan bahagian-bahagian ini dahulu: pergerakan dan kamera orang ketiga yang boleh ditala, satu gelung pertempuran jarak dekat masa nyata, satu musuh dengan mesin keadaan kecil, satu misi atau dialog yang boleh dicetuskan, dan HUD yang menunjukkan kesihatan atau kemajuan misi. Panduan ini mengikut urutan binaan tersebut. Andaikan anda memacu projek Unity terbuka dari Cursor, Claude Code, Codex, atau IDE berkeupayaan MCP lain melalui Unity MCP—membaca dan menulis scene, GameObject, dan C#, bukan hanya menampal fail ke cakera.

Pasang dan sambungkan: Panduan pemasangan Unity MCP. Versi editor yang disokong mengikut halaman produk (biasanya Unity 2022.3+ / Unity 6).

Skop hirisan minimum yang boleh dimainkan

Hantar v1 hanya jika anda boleh terima:

  1. Pergerakan WASD, lihat tetikus, lompat; tanah dan cerun lembut terasa stabil
  2. Satu serangan jarak dekat (animasi placeholder OK) yang mengenai collider dan memberikan kerosakan
  3. Satu musuh: rondaan → kesan pemain → kejar / serang; lumpuhkan atau musnahkan apabila mati
  4. Satu NPC: dekat untuk bercakap atau menerima misi; objektif “kalahkan musuh itu,” kemudian kemas kini log
  5. HUD ringkas: bar kesihatan + satu baris misi

Blok keluar seni dengan primitif jika perlu. Anggap menu utama, grid inventori, HUD yang digilap sebagai laluan UI kemudian (lihat di bawah).

Kesediaan projek dan MCP

Sebelum prompt permainan:

  • Projek Unity dibuka; scene sasaran boleh masuk Play
  • Pelayan Unity MCP berjalan; IDE AI boleh senaraikan akar Hierarchy (smoke baca sahaja)
  • Komit garis dasar dilakukan; komit semula sebelum suntingan besar

Pemeriksaan baca sahaja:

Senaraikan GameObject akar dalam scene aktif. Jangan ubah apa-apa.

Hanya kemudian tulis. Kekalkan jambatan pada localhost—jangan dedahkan port secara awam. Kraf prompt: Unity MCP dengan Claude Code dan Cursor.

Pemain: kawalan orang ketiga dahulu

Rangka minimum (namakan semula mengikut projek anda):

Player
├── CharacterController atau Rigidbody + CapsuleCollider
├── CameraPivot (yaw)
│   └── CameraArm (pitch) → Main Camera
└── AttackHitbox (trigger, mati secara lalai)

Nyatakan input, kamera, dan laluan dengan jelas:

Cipta Assets/Scripts/Player/PlayerController.cs: orang ketiga; WASD relatif kepada hadapan kamera; yaw/pitch tetikus (clamp pitch −30°–60°); Space untuk lompat; lekat pada Player. Ground melalui CharacterController.isGrounded atau setara.

Kemudian tala rasa:

Kelajuan gerakan ~5 dengan pelicinan pecutan ringan; lompat ~1.2 m; sedikit redaman ikut kamera—tiada whip-pan.

Semak cerun, stereng udara, dan kliping kamera sebelum meraikan “skrip dijana.”

Pertempuran: satu gelung jarak dekat yang boleh diterima

Langkau pokok kemahiran dalam v1. Matlamat: tekan serang → aktifkan hitbox untuk N bingkai → kerosakan → segar semula HUD.

Tambah PlayerCombat.cs: serangan LMB, cooldown 0.6 s; aktifkan AttackHitbox semasa tetingkap; berikan 15 kerosakan kepada IDamageable. Musuh melaksanakan IDamageable dan HP semasa.

Naik taraf mudah yang masih ringkas:

Kunci pergerakan seketika semasa serang; hitstun pendek pada musuh; 0.4 s i-frame dengan blink selepas kerosakan pemain.

Naikkan perubahan kesihatan sebagai acara/panggil balik supaya pengikatan HUD kekal bersih—elakkan skrip UI Find-ing dunia.

Musuh: Idle / Patrol / Chase / Attack

Tiada pokok tingkah laku diperlukan. Empat keadaan meliputi mob lapangan:

Idle → Patrol → Chase → Attack
         ↑________________↓ (hilang sasaran)

Cipta Assets/Scripts/Enemy/EnemyAI.cs: rondaan dua titik; masuk Chase dalam 12 m; Attack dalam 2 m (cooldown 1.2 s, 8 kerosakan); kembali ke Patrol 3 s selepas kehilangan pemain; pada 0 HP main kematian atau SetActive(false).

Utamakan NavMeshAgent jika anda sudah bake; jika tidak, gerakan seek/face ringkas supaya minggu pertama tidak terhalang oleh navigasi. Animator pilihan—pandangan dan maklum balas warna cukup awal.

Misi dan NPC: satu benang utama

“Rasa misi” ialah cetus → jejak → lengkap, bukan editor misi penuh.

Kekalkan data ringkas:

  • QuestId, tajuk, penerangan, kiraan kemajuan, bendera selesai
  • NPC Interact (E atau trigger) membuka dialog dan StartQuest
  • Kematian musuh memanggil QuestManager.NotifyKill(enemyId)

Cipta QuestManager singleton: terima slay_wolf_01 (kalahkan 1 Wolf); maju pada kematian Wolf; kemas kini salinan log misi apabila selesai. NPC Wizard: pemain masuk trigger, tekan E untuk memulakan misi itu.

TMP/Text cukup untuk dialog v1; cabang kemudian.

HUD: placeholder dahulu, UI digilap kemudian

Semasa permainan belum selesai, wayar Slider / TMP_Text enjin:

Ikat OnHealthChanged pemain ke bar HUD; ikat tajuk semasa QuestManager ke baris TMP atas skrin.

Apabila menu, inventori, atau bar kemahiran memerlukan UI gred reka bentuk (PSD/Figma berlapis, panel janaan NL, pecah dan eksport sebagai prefab Unity), gunakan aliran kerja kanvas seperti AI Studio:

  1. Jana atau import HUD / menu RPG
  2. Komponenkan dan eksport ke contohnya Assets/UI/
  3. Kembali ke IDE AI + Unity MCP untuk mengikat butang, bar, dan teks misi kepada acara permainan sedia ada

Kendalikan potongan keras untuk alfa dahulu jika perlu. Struktur boleh datang dari kanvas; pengikatan dan logik pertempuran kekal di Unity melalui MCP—jangan harap alat kanvas mengarang FSM pertempuran penuh.

Butiran import: Figma ke Unity UI.

Urutan binaan yang dicadangkan

MCP: kawalan pemain → satu gelung jarak dekat → satu FSM musuh → satu misi + NPC
        ↓
MCP: wayar HUD placeholder (HP / baris misi)
        ↓ (pilihan)
Alat kanvas: menu / HUD digilap → eksport ke Unity
        ↓
MCP: ikat UI digilap kepada acara sedia ada

Rasa, nombor, AI, navigasi → terus guna Unity MCP.
Hierarki visual skrin penuh, reskin, prefab dieksport semula → kembali ke alat kanvas.

Sempadan prompt yang benar-benar membantu

Prompt kabur membuang kitaran. Tetapkan:

  • Laluan dan titik lekat — folder mana, objek mana
  • Penerimaan — contohnya “dalam 10 s Play, bunuh satu wolf dan lihat misi selesai”
  • Di luar skop — contohnya “jangan bina semula keseluruhan timbunan input; jangan padam kamera”
  • Satu kebimbangan setiap prompt — kawalan, kemudian pertempuran, kemudian musuh

Sentiasa uji Play sendiri. MCP menghapuskan klik berulang; ia tidak menggantikan pertimbangan reka bentuk.

Senarai semak penerimaan

  • Pergerakan/kamera orang ketiga kekal terkawal selama ~2 minit tanpa kliping jelas/hilang kawalan
  • Jarak dekat mengenai dengan pasti; cooldown ketara
  • Patrol vs kejar boleh dibaca; kematian mempunyai maklum balas jelas
  • Misi boleh diterima dan disiapkan; salinan HUD dikemas kini
  • Perubahan kesihatan sampai ke UI (placeholder OK)

Langkah seterusnya

  1. Selesaikan panduan pemasangan Unity MCP dan ujian smoke baca sahaja
  2. Hantar “pergerakan + satu musuh + satu misi” dalam urutan itu
  3. Tambah eksport UI digilap hanya apabila HUD mesti kelihatan siap

Panduan lain yang mungkin anda suka