Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Zdravie, ktoré je priekopníkom v niektorých z najstarších videohier na svete, je bežným mechanizmom, ktorý pretrváva v mnohých dnešných najpopulárnejších tituloch. Zdravie umožňuje využívať komplexnú bojovú mechaniku, vytvárať postup hráča a robiť vašu hru intuitívnejšou. Ale ako pridáte zdravotný systém do svojich vlastných hier?

Unity3D uľahčuje pridávanie prvkov 2D používateľského rozhrania do 3D hier, takže je to skvelé miesto, kde môžete prvýkrát začať objavovať zdravotné pruhy.

Čo sa naučíte

Navonok sa tento projekt nemusí zdať komplikovaný. Napriek tomu budete musieť pochopiť niekoľko kľúčových konceptov kódovania Unity3D, aby ste vytvorili funkčný panel zdravia. To znamená, že sa počas tohto projektu môžete veľa naučiť, vrátane:

  • Ako vytvoriť 2D prvky používateľského rozhrania / sprite v Unity3D.
  • Ako upravovať komponenty herných objektov pomocou kódu.
  • Ako zdieľať premenné medzi skriptami v Unity3D.
instagram viewer

Krok 1: Nastavte si svoju scénu

Predtým, ako začnete kódovať svoj panel zdravia, potrebujete scénu s modelom hráča, na ktorý sa bude vzťahovať. Ak chcete začať, môžete sledovať naše fyzikálny sprievodca Unity3D ovládačom postáv na vytvorenie modelu hráča so základnými ovládacími prvkami.

So scénou a modelom prehrávača je čas pridať prvok používateľského rozhrania. Kliknite pravým tlačidlom myši do okna Hierarchia a vyberte UI > Obrázok. Tým sa vytvoria dve nové položky vo vašej hierarchii: nadradený objekt Canvas a podriadený objekt Image. Zmeňte názov podriadeného objektu na Healthbar. Pomocou inšpektora vyberte šírku, výšku a polohu lišty zdravia.

Môžete pridať o niečo väčší obrázok používateľského rozhrania s farbou nastavenou na čiernu, aby fungoval ako pozadie/okraj pre panel zdravia. Len sa uistite, že je nad panelom zdravia v hierarchii, aby sa zobrazoval za ním.

Tento prvok používateľského rozhrania funguje ako základ pre váš panel zdravia, ale na jeho oživenie potrebujete aj sprite. Prejdite na tablu Projekt, kliknite pravým tlačidlom myši a vyberte Vytvorte > 2D > Škriatkovia > Námestie.

Vyberte Healthbar z hierarchie a potiahnite sprite, ktorý ste práve vytvorili, do výberového poľa Zdrojový obrázok v inšpektorovi. Môžete sa tiež zmeniť Typ obrázka naplnené, Metóda plnenia na horizontálne a Vyplňte Pôvod doľava. Teraz, ak spustíte hru a použijete Vyplňte množstvo jazdca, mali by ste vidieť, ako sa váš zdravotný pruh zmenšuje a rastie.

Ak nevidíte ponuku komponentov používateľského rozhrania, prejdite na Okno > Správca balíkova uistite sa, že máte nainštalovaný 2D balík.

Krok 2: Pridajte premennú zdravia

Nemalo by zmysel vytvárať ukazovateľ zdravia bez premennej zdravia, ktorá by diktovala jeho stav. Iné skripty musia mať prístup k tejto premennej a má zmysel umiestniť ju niekam do centra. Pridajte ho do skriptu na ovládanie znakov ako verejný float:

verejnostiplavák Zdravie hráča = 1,0f;

Použitie float pre túto premennú znamená, že môžete jednoducho reprezentovať ľubovoľné percento od 0 do 100, aby sa zhodovalo s premennou Množstvo naplnenia obrázka používateľského rozhrania panela zdravia. Napríklad zdravie hráča 0,5 f predstavuje 50 % šírky panela zdravia.

Krok 3: Zdieľajte premenné medzi skriptami v Unity

Premenné zvyčajne fungujú v rámci svojich vlastných funkcií a skriptov. Tým sa stanú nedostupnými z iných funkcií a skriptov, pokiaľ nepodniknete kroky, aby ste kódu povedali, kde má nájsť premenné, s ktorými chcete pracovať.

Začnite vytvorením nového súboru skriptu s názvom Health, do ktorého bude uložený kód. Tento skript môžete presunúť myšou do prvku používateľského rozhrania Healthbar vytvoreného v prvom kroku. Nasledujúci kód prejde do funkcie void Update().

Tento proces začína nájdením herného objektu, ktorý vlastní premennú. V tomto prípade je to objekt Character_Model:

GameObject Character_Model = GameObject. Nájsť("Postava_Model");

Ďalej je čas nájsť komponent skriptu, ktorý obsahuje premennú, s ktorou potrebujete pracovať.

Character_Control character_Control = Character_Model. GetComponent();

A nakoniec môžete extrahovať konkrétnu premennú, ktorú hľadáte. V tomto prípade je to premenná zdravia hráča, ktorú ste pridali do ovládača postavy. Priraďte to k float premennej v rámci aktuálneho skriptu s názvom currentHealth.

currentHealth = character_Control.playerHealth;

Na získanie premennej, ktorú potrebujete, potrebujete iba niekoľko riadkov kódu a túto metódu môžete použiť vždy, keď potrebujete získať prístup k zdraviu svojho hráča. Po dokončení by mal váš kód vyzerať takto:

použitím Systém. zbierky;
použitím Systém. zbierky. generický;
použitím UnityEngine;
použitím UnityEngine. UI;

verejnostitriedaZdravie: MonoBehaviour
{
verejnostiplavák aktuálneZdravie;

neplatnéŠtart()
{
}

neplatnéAktualizovať()
{
GameObject Character_Model = GameObject. Nájsť("Postava_Model");
Character_Control character_Control = Character_Model. GetComponent();
currentHealth = character_Control.playerHealth;
}
}

Krok 4: Naprogramujte herný objekt UI Health Bar

Teraz, keď ste vytvorili prvok používateľského rozhrania panela zdravia a máte prístup k premennej zdravia hráča, je čas, aby spolupracovali. Ak chcete začať, pridajte súkromnú statickú premennú, ktorá bude obsahovať komponent obrázka vášho panela zdravia:

súkromnéstatické Obrázok Healthbar;

K tejto premennej potom môžete priradiť komponent obrazu v rámci funkcie void Start(), ktorá sa spustí iba raz.

Healthbar = GetComponent();

Teraz, keď máte všetky premenné na svojom mieste, môžete použiť kód z predchádzajúceho kroku na nastavenie šírky výplne objektu používateľského rozhrania panela stavu. Tu nemusíte vykonávať žiadnu konverziu; zdravie hráča aj množstvo naplnenia ukazovateľa zdravia sú pohyblivé premenné.

Healthbar.fillAmount = currentHealth;

S týmto kódom sa váš panel zdravia zaplní hore a dole na základe premennej zdravia, ktorá sa nachádza v kóde Character_Control. Toto je však trochu nudné a určite by to mohlo stačiť s nejakou farbou.

Začnite pridaním novej farby, aby bol panel zdravia svetlozelený, keď má hráč veľa zdravia.

Farba zelenáZdravie = Nový Farba (0,6f, 1, 0,6f, 1);

Potom pridajte príkaz if, aby ste skontrolovali, či je zdravie hráča vyššie ako 0,3f, t.j. 30 % alebo viac. Ak je vyššia ako 0,3f, nastavte ukazovateľ zdravia tak, aby zodpovedal farbe, ktorú ste práve pridali. Ak je pod 0,3f, zapnite indikátor zdravia na červeno.

ak (aktuálneZdravie >= 0,3f) {
Healthbar.color = zelenáZdravie;
} inak {
Healthbar.color = Color.red;
}

Krok 5: Testovanie kódu

Ako môžete vidieť z úplného kódu nižšie, tento projekt je celkom jednoduchý, keď je všetko spolu. Samozrejme, potrebujete spôsob, ako otestovať svoj kód.

použitím Systém. zbierky;
použitím Systém. zbierky. generický;
použitím UnityEngine;
použitím UnityEngine. UI;

verejnostitriedaZdravie: MonoBehaviour
{
súkromnéstatické Obrázok Healthbar;
verejnostiplavák aktuálneZdravie;

neplatnéŠtart()
{
Healthbar = GetComponent();
}

neplatnéAktualizovať()
{
GameObject Character_Model = GameObject. Nájsť("Postava_Model");
Character_Control character_Control = Character_Model. GetComponent();
currentHealth = character_Control.playerHealth;
Healthbar.fillAmount = currentHealth;

Farba zelenáZdravie = Nový Farba (0,6f, 1, 0,6f, 1);

ak (aktuálneZdravie >= 0,3f) {
Healthbar.color = zelenáZdravie;
} inak {
Healthbar.color = Color.red;
}
}
}

Do skriptu Character_Control môžete pridať jeden riadok kódu, aby bolo možné testovanie. Vždy, keď hráč stlačí kláves W, aby sa posunul vpred, odstráňte malé množstvo zdravia. Rovnaký kód môžete pridať do ľubovoľného skriptu s prístupom k premennej playerHealth pre rovnaké výsledky:

zdravie hráča -= 0,001f;

Môžete tiež zvážiť pridanie jedinečných aktív do svojho projektu Unity. Môžeš nájsť voľné aktíva Unity na webe, vďaka čomu máte možnosť oživiť svoj projekt bez toho, aby ste museli míňať peniaze.

Budovanie zdravotných tyčí v Unity3D

Vaša hra sa začína formovať teraz, keď máte pre svoju postavu pripravený zdravotný pruh. Je pred nami ešte veľa práce, ale teraz by ste mali mať niektoré z kľúčových zručností, ktoré potrebujete, aby ste mohli začať robiť skutočný pokrok. Samozrejme, nikdy nezaškodí prečítať si viac sprievodcov.