Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Zdraví je průkopníkem v některých z nejstarších videoher na světě a je běžnou mechanikou, která přetrvává v mnoha dnešních nejpopulárnějších titulech. Zdraví umožňuje používat komplexní bojové mechanismy, vytvářet postup hráče a učinit vaši hru intuitivnější. Jak ale přidat zdravotní systém do svých vlastních her?

Unity3D usnadňuje přidávání prvků 2D uživatelského rozhraní do 3D her, takže je to skvělé místo, kde můžete poprvé začít zkoumat ukazatele zdraví.

Co se naučíte

Na první pohled se tento projekt nemusí zdát složitý. Navzdory tomu budete muset pochopit několik klíčových konceptů kódování Unity3D, abyste vytvořili funkční panel zdraví. To znamená, že se během tohoto projektu můžete hodně naučit, včetně:

  • Jak vytvořit 2D prvky uživatelského rozhraní/sprajty v Unity3D.
  • Jak upravovat komponenty herních objektů pomocí kódu.
  • Jak sdílet proměnné mezi skripty v Unity3D.
instagram viewer

Krok 1: Nastavte svou scénu

Než budete moci začít kódovat svůj ukazatel zdraví, potřebujete scénu s modelem hráče, na který se bude vztahovat. Chcete-li začít, můžete sledovat naše fyzikální průvodce Unity3D pro ovládání postav vytvořit model hráče se základním ovládáním.

Se scénou a modelem přehrávače je čas přidat prvek uživatelského rozhraní. Klepněte pravým tlačítkem myši do okna Hierarchie a vyberte UI > obraz. Tím se ve vaší hierarchii vytvoří dvě nové položky: nadřazený objekt Canvas a podřízený objekt Image. Změňte název podřízeného objektu na Healthbar. Pomocí inspektora vyberte šířku, výšku a polohu pro ukazatel zdraví.

Můžete přidat o něco větší obrázek uživatelského rozhraní s barvou nastavenou na černou, aby fungoval jako pozadí/ohraničení panelu zdraví. Jen se ujistěte, že je nad ukazatelem zdraví v hierarchii, aby se zobrazoval za ním.

Tento prvek uživatelského rozhraní funguje jako základ pro váš ukazatel zdraví, ale k jeho animaci potřebujete také spritu. Přejděte do podokna Projekt, klikněte pravým tlačítkem a vyberte Vytvořit > 2D > Skřítci > Náměstí.

Vyberte Healthbar z hierarchie a přetáhněte sprite, který jste právě vytvořili, do výběrového pole Zdrojový obrázek v inspektoru. Můžete se také změnit Typ obrázku naplnit, Metoda plnění na horizontální a Vyplňte Počátek opustit. Nyní, pokud spustíte hru a použijete Vyplňte částku posuvníku byste měli vidět, jak se váš ukazatel zdraví zmenšuje a roste.

Pokud nevidíte nabídku komponent uživatelského rozhraní, přejděte na Okno > Správce balíčkůa ujistěte se, že máte nainstalovaný 2D balíček.

Krok 2: Přidejte proměnnou zdraví

Vytvářet ukazatel zdraví by nemělo moc smysl bez proměnné zdraví, která by diktovala jeho stav. Ostatní skripty musí mít k této proměnné přístup a má smysl ji umístit někam do centra. Přidejte jej do skriptu ovládání znaků jako veřejný float:

veřejnostplovák zdraví hráče = 1,0f;

Použití float pro tuto proměnnou znamená, že můžete snadno reprezentovat jakékoli procento od 0 do 100, aby odpovídalo proměnné Množství naplnění obrázku uživatelského rozhraní ukazatele stavu. Například zdraví hráče 0,5f je 50 % šířky ukazatele zdraví.

Krok 3: Sdílejte proměnné mezi skripty v Unity

Proměnné obvykle fungují v rámci svých vlastních funkcí a skriptů. Díky tomu jsou nepřístupné z jiných funkcí a skriptů, pokud nepodniknete kroky, které kódu sdělí, kde má najít proměnné, se kterými chcete pracovat.

Začněte vytvořením nového souboru skriptu s názvem Health, do kterého bude uložen kód. Tento skript můžete přetáhnout na prvek uživatelského rozhraní Healthbar vytvořený v prvním kroku. Následující kód přejde do funkce void Update().

Tento proces začíná nalezením herního objektu, který vlastní proměnnou. V tomto případě je to objekt Character_Model:

GameObject Character_Model = GameObject. Nalézt("model_postavy");

Dále je čas najít komponentu skriptu, která obsahuje proměnnou, se kterou potřebujete pracovat.

Character_Control character_Control = Character_Model. GetComponent();

A nakonec můžete extrahovat konkrétní proměnnou, kterou hledáte. V tomto případě je to proměnná PlayerHealth, kterou jste přidali do ovladače postavy. Přiřaďte to proměnné float v rámci aktuálního skriptu s názvem currentHealth.

currentHealth = character_Control.playerHealth;

Získání potřebné proměnné trvá jen několik řádků kódu a tuto metodu můžete použít, kdykoli potřebujete získat přístup ke zdraví svého hráče. Jakmile budete hotovi, váš kód by měl vypadat takto:

použitím Systém. Sbírky;
použitím Systém. Sbírky. Obecný;
použitím UnityEngine;
použitím UnityEngine. UI;

veřejnosttřídaZdraví: MonoBehaviour
{
veřejnostplovák aktuálníZdraví;

prázdnotaStart()
{
}

prázdnotaAktualizace()
{
GameObject Character_Model = GameObject. Nalézt("model_postavy");
Character_Control character_Control = Character_Model. GetComponent();
currentHealth = character_Control.playerHealth;
}
}

Krok 4: Naprogramujte herní objekt UI Health Bar

Nyní, když jste vytvořili prvek uživatelského rozhraní ukazatele zdraví a máte přístup k proměnné zdraví hráče, je čas, aby spolupracovaly. Chcete-li začít, přidejte soukromou statickou proměnnou, která bude obsahovat komponentu obrázku vašeho ukazatele zdraví:

soukroméstatický Obrázek Healthbar;

K této proměnné pak můžete přiřadit komponentu obrázku v rámci funkce void Start(), která se spustí pouze jednou.

Healthbar = GetComponent();

Nyní, když máte všechny proměnné na svém místě, můžete použít kód z předchozího kroku k nastavení šířky výplně objektu uživatelského rozhraní ukazatele stavu. Zde nemusíte provádět žádnou konverzi; jak zdraví hráče, tak množství naplnění ukazatele zdraví jsou proměnné s plovoucí hladinou.

Healthbar.fillAmount = currentHealth;

S tímto kódem se váš ukazatel zdraví zaplní nahoru a dolů na základě proměnné zdraví nalezené v kódu Character_Control. Tohle je ale trochu nuda a určitě by to mohlo stačit s nějakou barvou.

Začněte přidáním nové barvy, aby byl ukazatel zdraví světle zelený, když má hráč hodně zdraví.

Barva zelenáZdraví = Nový Barva(0,6f, 1, 0,6f, 1);

Dále přidejte příkaz if a zkontrolujte, zda je zdraví hráče vyšší než 0,3f, tj. 30 % nebo více. Pokud je vyšší než 0,3f, nastavte ukazatel zdraví tak, aby odpovídal barvě, kterou jste právě přidali. Pokud je pod 0,3f, změňte ukazatel zdraví na červenou.

-li (aktuální Zdraví >= 0,3f) {
Healthbar.color = zelenáZdraví;
} jiný {
Healthbar.color = Color.red;
}

Krok 5: Testování kódu

Jak můžete vidět z kompletního kódu níže, tento projekt je docela jednoduchý, když je vše pohromadě. Samozřejmě však potřebujete způsob, jak svůj kód otestovat.

použitím Systém. Sbírky;
použitím Systém. Sbírky. Obecný;
použitím UnityEngine;
použitím UnityEngine. UI;

veřejnosttřídaZdraví: MonoBehaviour
{
soukroméstatický Obrázek Healthbar;
veřejnostplovák aktuálníZdraví;

prázdnotaStart()
{
Healthbar = GetComponent();
}

prázdnotaAktualizace()
{
GameObject Character_Model = GameObject. Nalézt("model_postavy");
Character_Control character_Control = Character_Model. GetComponent();
currentHealth = character_Control.playerHealth;
Healthbar.fillAmount = currentHealth;

Barva zelenáZdraví = Nový Barva(0,6f, 1, 0,6f, 1);

-li (aktuální Zdraví >= 0,3f) {
Healthbar.color = zelenáZdraví;
} jiný {
Healthbar.color = Color.red;
}
}
}

Do skriptu Character_Control můžete přidat jeden řádek kódu, abyste umožnili testování. Kdykoli hráč stiskne klávesu W, aby se posunul vpřed, odeberte malé množství zdraví. Stejný kód můžete přidat do libovolného skriptu s přístupem k proměnné playerHealth pro stejné výsledky:

PlayerHealth -= 0,001f;

Můžete také zvážit přidání jedinečných aktiv do svého projektu Unity. Můžeš najít volné aktiva Unity přes web, což vám dává příležitost oživit váš projekt, aniž byste museli utrácet peníze.

Budování zdravotních tyčí v Unity3D

Vaše hra se nyní začíná formovat, když máte pro svou postavu připravenou laťku zdraví. Je před námi ještě spousta práce, ale nyní byste měli mít některé klíčové dovednosti, které potřebujete, abyste mohli začít dělat skutečný pokrok. Samozřejmě však nikdy neuškodí přečíst si více průvodců.