Sambungkan HUD AI Studio ke Acara Kesihatan dengan Unity MCP
Selepas AI Studio mengeksport prefab HUD Unity, gunakan Cursor + Unity MCP untuk melanggan acara kesihatan, segar semula bar dan teks kerosakan, dengan senarai semak mod Main dan pembaikan titik putus biasa.
- Unity MCP
- AI Studio
- HUD
- Unity
- Cursor
- AI game development
- tutorial
Tajuk
Sambungkan HUD AI Studio ke Acara Kesihatan dengan Unity MCP
Penerangan
Selepas AI Studio mengeksport prefab HUD Unity, gunakan Cursor + Unity MCP untuk melanggan acara kesihatan, segar semula bar dan teks kerosakan, dengan senarai semak mod Main dan pembaikan titik putus biasa.
Kandungan
HUD berada dalam Unity, bar kelihatan baik, tetapi pertempuran tidak menggerakkannya—biasanya prefab itu baik dan UI dan permainan tidak berkongsi acara kesihatan yang sama. Pereka telah mengeksport HUD utama sebagai Canvas / Prefab dari VberAI Studio. Permainan harus menggunakan Unity MCP dalam projek terbuka untuk menyambungkan perubahan PlayerHealth ke Slider / Image.fillAmount, kemudian sahkan dalam mod Main.
Siaran ini hanya merangkumi pendawaian itu—bukan eksport Figma atau pemasangan MCP.
| Langkah | Alat | Output |
|---|---|---|
| Struktur HUD ke dalam enjin | AI Studio | Prefab HUD dengan nama yang stabil |
| Lampirkan skrip, ikat rujukan, edit adegan | Cursor (atau Claude Code) + Unity MCP | PlayerHealth ↔ HudHealthView |
| Terima | Unity Play | Panjang bar berubah pada kerosakan / penyembuhan |
Berkaitan:
Sepakat pada nama sebelum menggilap
Selepas eksport AI Studio, kod mesti mencari bar melalui laluan atau rujukan bersiri. Sebelum eksport (atau selepas import), kekalkan nama yang stabil:
| Peranan | Nama yang dicadangkan | Nota |
|---|---|---|
| Akar HUD | HUD_Root | Unik dalam adegan |
| Isi kesihatan | HUD_HealthFill | Image (Filled) atau di bawah Slider.fillRect |
| Teks nilai pilihan | HUD_HealthText | TextMeshProUGUI, contohnya 80/100 |
| Kilat kerosakan pilihan | HUD_DamageFlash | Imej skrin penuh atau sempadan, lutsinar secara lalai |
Elakkan lalai reka bentuk seperti Rectangle 42 atau Group 3—kedua-dua MCP dan skrip tulisan tangan akan mewarisi kekacauan itu.
Langkah 1: Sahkan HUD berada dalam adegan
- Buka adegan pemain (contohnya
Game) - Hierarki harus menunjukkan
HUD_Root(atau yang setara) dengan Imej / Slider kesihatan di bawahnya - Mod Render Kanvas dan persediaan kamera betul (Screen Space - Overlay adalah paling mudah)
Ujian asap baca sahaja melalui MCP (jangan edit adegan):
Senaraikan GameObject dalam adegan aktif yang namanya mengandungi HUD, dan jenis komponen UI padanya. Jangan ubah suai apa-apa.
Jika senarai kosong: eksport semula/selaraskan dari AI Studio, atau periksa bahawa Prefab dijatuhkan ke adegan yang salah.
Langkah 2: Permainan mendedahkan perubahan kesihatan—jangan cari UI
Simpan kesihatan pada pemain dan siarkan dengan acara C# (atau UnityEvent). HUD hanya melanggan; ia tidak boleh memacu logik melalui Find("Player").
Minta Unity MCP dari Cursor (laluan boleh sepadan dengan projek anda):
Buat Assets/Scripts/Combat/PlayerHealth.cs:
- maxHealth, currentHealth (float)
- acara Action<float,float> OnHealthChanged(current, max)
- TakeDamage(float), Heal(float); clamp ke 0..max
- Jika current<=0 selepas kerosakan, pancarkan OnHealthChanged sekali lagi dan pilihan OnDied
- Lampirkan ke Player dalam adegan; siarkan sekali dalam Start
Jangan ubah suai mana-mana nod HUD.
Rujukan pelaksanaan (jana, kemudian semak):
using System;
using UnityEngine;
public class PlayerHealth : MonoBehaviour
{
[SerializeField] float maxHealth = 100f;
float currentHealth;
public event Action<float, float> OnHealthChanged;
public event Action OnDied;
void Awake() => currentHealth = maxHealth;
void Start() => OnHealthChanged?.Invoke(currentHealth, maxHealth);
public void TakeDamage(float amount)
{
if (amount <= 0f || currentHealth <= 0f) return;
currentHealth = Mathf.Max(0f, currentHealth - amount);
OnHealthChanged?.Invoke(currentHealth, maxHealth);
if (currentHealth <= 0f) OnDied?.Invoke();
}
public void Heal(float amount)
{
if (amount <= 0f || currentHealth <= 0f) return;
currentHealth = Mathf.Min(maxHealth, currentHealth + amount);
OnHealthChanged?.Invoke(currentHealth, maxHealth);
}
}
Kunci kerosakan sementara untuk pendawaian (padam kemudian):
Tambah DebugDealDamage.cs sementara pada Player: menekan H menyebabkan 10 kerosakan kepada PlayerHealth pada objek yang sama. Penerimaan pendawaian sahaja.
Langkah 3: Paparan HUD hanya mendengar dan mengemas kini bar
Tambah skrip paparan dengan rujukan bersiri. Jangan GameObject.Find setiap bingkai dalam Update.
Buat Assets/Scripts/UI/HudHealthView.cs:
- Serialize Image healthFill (Filled, Horizontal)
- Pilihan TMP_Text healthText
- Serialize PlayerHealth playerHealth (atau selesaikan PlayerHealth unik pada Awake)
- OnEnable langgan OnHealthChanged; OnDisable batalkan langganan
- Dalam callback: healthFill.fillAmount = current/max; teks $"{current:0}/{max:0}"
- Lampirkan ke HUD_Root; tetapkan Imej HUD_HealthFill ke healthFill
- Tetapkan PlayerHealth pemain ke playerHealth
Rujukan:
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class HudHealthView : MonoBehaviour
{
[SerializeField] PlayerHealth playerHealth;
[SerializeField] Image healthFill;
[SerializeField] TMP_Text healthText;
void OnEnable()
{
if (playerHealth == null) return;
playerHealth.OnHealthChanged += HandleHealthChanged;
// Jika anda melanggan selepas Start, tarik sekali; di sini kita bergantung pada PlayerHealth.Start
}
void OnDisable()
{
if (playerHealth == null) return;
playerHealth.OnHealthChanged -= HandleHealthChanged;
}
void HandleHealthChanged(float current, float max)
{
float t = max > 0f ? current / max : 0f;
if (healthFill != null) healthFill.fillAmount = t;
if (healthText != null) healthText.text = $"{Mathf.CeilToInt(current)}/{Mathf.CeilToInt(max)}";
}
}
Jika Imej tidak Filled: minta MCP menetapkan Image Type = Filled, Fill Method = Horizontal, kemudian ikat fillAmount. Dengan Slider, tulis slider.value = t (minValue=0, maxValue=1)—corak yang sama.
Langkah 4: Biarkan Unity MCP mengisi rujukan bersiri
Selepas kompilasi, bersikap jelas dalam Cursor:
Dalam adegan aktif:
1. Sahkan Player mempunyai PlayerHealth; HUD_Root mempunyai HudHealthView
2. Tunjuk HudHealthView.healthFill ke Imej bernama HUD_HealthFill
3. Tunjuk HudHealthView.playerHealth ke PlayerHealth Player
4. Jika HUD_HealthText wujud, tetapkan TMP_Text
5. Simpan adegan
Kemudian senaraikan sebarang medan bersiri None yang tinggal pada dua komponen itu.
Semakan baca sahaja:
Periksa rujukan HudHealthView dan PlayerHealth: sebarang skrip hilang atau medan None? Laporkan sahaja—jangan edit adegan.
Langkah 5: Senarai semak penerimaan Play
Masuk Play dan tandakan semua ini sebelum memanggil pendawaian selesai:
- Sebaik masuk: bar penuh (atau sepadan dengan
current/max), tidak kosong/basi - Tekan H (atau pukul pemain):
fillAmountmenurun; teks dikemas kini jika ada - Kerosakan ke 0: bar kosong; keadaan mati stabil; HUD tidak berombak
- Sembuh: bar naik (kunci sementara atau pickup)
- Keluar Play dan masuk semula: rujukan masih sah; tiada Missing Script
Prompt penerimaan:
Saya menerima pendawaian HUD dalam mod Play. Jika Konsol menunjukkan NullReferenceException, nyatakan sama ada ia PlayerHealth atau HudHealthView dan medan bersiri mana yang None. Diagnosa dahulu, cadangkan pembaikan minimum, tunggu OK saya sebelum mengedit.
Titik putus biasa
| Gejala | Periksa dahulu |
|---|---|
| Bar tidak pernah bergerak dalam Play | OnHealthChanged tidak dilanggan; atau kerosakan tidak pernah mencapai TakeDamage |
| NRE pada masuk Play | healthFill / playerHealth masih None |
| Bar terbalik atau melonjak | Imej tidak Filled; Rect salah digunakan sebagai isi |
| Teks tersekat | TMP salah; ralat aset fon hilang pada komponen |
| AI mengedit objek yang salah | Prompt: “Hanya sentuh HUD_Root / Player; jangan gerakkan geometri tahap” |
Peraturan: permainan menukar kesihatan; UI hanya mendengar. Jangan Find("HUD_HealthFill") di dalam PlayerCombat—eksport semula AI Studio seterusnya yang menamakan semula akan memecahkan pertempuran juga.
Hidup dengan eksport semula HUD
Apabila pereka mengeksport semula dari AI Studio:
- Kekalkan nama
HUD_HealthFill/HUD_Rootapabila mungkin - Selepas import semula, hanya jalankan semula semakan rujukan langkah 4—jangan biarkan MCP menulis semula
PlayerHealth - Kekalkan skrip paparan dalam projek; ikat semula jika rujukan varian Prefab dibersihkan
Prompt sempadan satu baris:
Laluan ini hanya membaiki rujukan Prefab UI yang hilang. Jangan ubah sebarang skrip permainan di bawah Assets/Scripts/Combat.
- AI Studio menyampaikan struktur HUD ke Unity
PlayerHealthmenyiarkan(current, max)HudHealthViewmelanggan dan mengemas kinifillAmount/ teks- Unity MCP melampirkan komponen, mengisi rujukan bersiri, menggunakan pembaikan Konsol minimum
- Terima dengan kunci kerosakan + senarai semak Play—bukan “skrip berjaya dijana”
Itu menutup gelung berulang: UI ke enjin → pendawaian acara → terima Play. Beg, bar mana, dan bar bos boleh menyalin corak yang sama.
Teruskan membaca
Panduan lain yang mungkin anda suka
Penjanaan Imej AI: VberAI Pertama Menghantar GPT Image 2.5—Edit, Pisah, dan Hantar Seni Permainan ke Enjin
VberAI Studio pertama menghantar GPT Image 2.5 (juga GPT Image 2, Nano Banana 2 / Pro, Wan 2.7, dan banyak lagi). Teks-ke-imej, imej-ke-imej, dan pratetap kekal pada kanvas permainan untuk edit, pisah, dan eksport ke Unity / Godot / Cocos.
- vberai
- ai-studio
- image-gen
- text-to-image
Lapisan Audio AI Studio: Skor, Suara, dan SFX pada Kanvas yang Sama
Cara AI Studio VberAI mengendalikan audio permainan: lapisan audio dan alat terapung, muzik/suara/SFX, perpustakaan dan pengurusan aset, penyuntingan trek; lampirkan audio pada Spine, urutan bingkai, dan video; jana SFX dan suara watak daripada teks.
- AI Studio
- VberAI
- game audio
- SFX
Reka Bentuk UI Permainan: Aliran Kerja Tradisional vs Seni AI + Pecahan VberAI Studio
Bandingkan hirisan manual PS/Figma dengan VberAI Studio: import atau jana UI dengan AI, pecah lapisan automatik, eksport PSD berlapis atau set imej.
- game-ui-design
- game-ui-designer-flow
- ui-slicing
- AIGC