Přejít na hlavní obsah

Skript 2D skákání postavy v Unity

Unity je výkonný nástroj pro vývoj her, který vám umožňuje vytvářet hry pro různé platformy. Jedním z klíčových prvků každé hry je postava, která se může pohybovat a komunikovat s okolním světem. V tomto článku se podíváme na podrobného průvodce vytvořením skokového skriptu pro 2D postavu v Unity.

Když mluvíme o 2D postavě, často se odkazuje na to, že herní svět je reprezentován ve dvourozměrném prostoru, kde se postava může pohybovat pouze po vodorovné a svislé ose. Aby postava mohla skákat, je nutné vytvořit skript, který bude ovládat její pohyb nahoru a jeho pád.

Unity používá k vytváření skriptů programovací jazyk C#. Vytvoříme nový skript, který bude zodpovědný za logiku skákání postavy. Nejprve se otevře Unity a vznikne nový projekt. Poté je nutné vytvořit nový skript v editoru kódu Unity a připojit jej k postavě.

Po vytvoření skriptu můžeme začít psát kód. Je důležité si uvědomit, že k vytvoření skoku postavy budeme potřebovat funkce, které prověří, zda je postava na zemi, a pokud ano, umožní jí skákat. Kód bude obsahovat několik sekcí-kontrolu stavu postavy, zpracování skoku a ovládání pohybu.

V důsledku úspěšného psaní skriptu bude postava schopna skákat na hráčův příkaz. Velkou výhodou vytvoření skokového skriptu pro 2D postavu v Unity je, že následná vylepšení a změny v logice pohybu postavy budou mnohem jednodušší. Budeme moci snadno přizpůsobit výšku skoku, rychlost postavy a další parametry, abychom dosáhli požadovaného chování.

Vytvoření nového projektu v Unity

Než začneme vytvářet skript pro skákání 2D postavy v Unity, musíme vytvořit nový projekt ve vývojovém prostředí Unity. Zde je podrobný návod, jak to udělat:

1. Spusťte Unity Hub, pokud již máte nainstalovanou Unity.

2. Klikněte na kartu projekty v horní liště.

3. Klikněte na tlačítko Vytvořit v pravém dolním rohu okna Unity Hub.

4. Vyberte složku, ve které chcete vytvořit nový projekt.

5. Pojmenujte projekt a vyberte šablonu projektu. V našem případě zvolíme "3D", protože potřebujeme vytvořit 2D postavu ve 3D prostředí.

6. Klikněte na tlačítko "Vytvořit".

7. Unity Hub automaticky stáhne a nainstaluje potřebné komponenty pro váš projekt.

8. Jakmile je proces instalace dokončen, klikněte na vytvořený projekt v okně Unity Hub a klikněte na tlačítko "Otevřít".

Nyní máte nový projekt v Unity a jste připraveni začít vytvářet skript pro skok vaší 2D postavy!

Nastavení dvourozměrného prostředí

Než začnete pracovat se skoky 2D postavy, je nutné upravit prostředí pro náš projekt v Unity.

1. Vytvořte nový projekt v Unity a vyberte 2D šablonu.

2. Přizpůsobte rozměry hrací plochy výběrem možnosti "Upravit" - > "Project Settings" - > "Editor". Na kartě " scéna "nastavte" Width "a" Height " podle svého uvážení na základě požadavků projektu.

3. Vytvořte pro postavu dvourozměrný objekt. Udělejte to výběrem "GameObject" - > "2D Object" - > "Sprite". Nastavte požadované velikosti a vyberte sprite pro postavu.

4. Nastavte gravitaci pro postavu. Chcete-li to provést, přidejte k postavě komponentu "Rigidbody 2D" výběrem "add Component" - > "Physics 2D" - > "Rigidbody 2D". Nastavte hodnotu "Gravity Scale", jak chcete.

5. Přidejte k postavě urychlovač. Chcete-li to provést, vyberte postavu a přidejte komponentu "Box Collider 2D" nebo jiný typ urychlovače, který odpovídá tvaru postavy. Nastavte velikost a polohu urychlovače pomocí nastavení "velikost" a přesuňte jej na požadované místo.

6. Nastavte chování kamery. Pokud chcete, aby kamera sledovala postavu, můžete do fotoaparátu přidat komponentu "Camera 2D Controller". To umožní fotoaparátu automaticky sledovat postavu při jejím pohybu.

Nyní jste pro svůj projekt v Unity nastavili dvourozměrné prostředí a jste připraveni začít vytvářet skript pro skok postavy.

Vytvoření animace postavy

Na začátku budeme potřebovat sadu skřítků představujících různé záběry animace skoku. Tyto skřítky můžeme vytvořit v jakémkoli grafickém programu a importovat je do Unity.

K vytvoření animace budeme potřebovat komponentu Animator. V Unity otevřete okno Animator a vytvořte nový animační ovladač. Poté přidejte stavy animace a nainstalujte příslušné skřítky pro každý snímek.

Chcete-li upravit přechod mezi stavy animace, můžete použít přechody a podmínky. Můžete například vytvořit přechod s podmínkou "vzduchový skok" a nakonfigurovat příslušnou animaci pro tento stav.

Po nastavení animace v Animator komponentě, můžete jej propojit s vaším skriptem postavy. Přidejte do skriptu odkaz na komponentu Animator, abyste mohli animaci ovládat ve správných okamžicích.

Můžete například použít metody Animator.SetBool ("Jumping", true) a Animator.SetBool ("Jumping", false) pro zapnutí a vypnutí animace skoku, respektive. K ovládání dalších animací postavy, jako je chůze nebo útok, můžete také použít jiné techniky Animator.

Je důležité si uvědomit, že při vytváření animace postavy je třeba vzít v úvahu pravidla animace a věnovat pozornost interpolacím mezi rámečky, aby animace vypadala hladce a přirozeně.

Použití animace postavy v Unity pomůže učinit vaši hru atraktivnější a zajímavější pro hráče. Neváhejte experimentovat a vytvářet jedinečné animace, které zvýrazní osobnost vaší postavy.

Přidání fyziky a urychlovačů

K vytvoření realistického pohybu postavy ve 2D hře v Unity je třeba přidat fyziku a urychlovače.

Fyzika v Unity umožňuje simulovat zákony pohybu a interakce objektů v herním světě. K tomu budeme potřebovat komponentu Rigidbody2D, která bude zodpovědná za fyzické chování postavy.

Chcete-li k postavě přidat komponentu Rigidbody2D, vyberte ji v hierarchii objektů a přejděte do okna Inspector. Klikněte na tlačítko "Add Component" a do vyhledávacího pole zadejte "Rigidbody2D". Vyberte jej ze seznamu výsledků a komponenta bude přidána k postavě.

Kromě toho budeme k detekci kolizí s jinými objekty a překážkami potřebovat urychlovač. Urychlovače se používají k určení tvaru, velikosti a chování objektu při kolizi s jinými objekty. V tomto případě použijeme BoxCollider2D, který vytvoří urychlovač ve tvaru obdélníku.

Chcete-li k postavě přidat komponentu BoxCollider2D, vyberte ji v hierarchii objektů a přejděte do okna Inspector. Klikněte na tlačítko "Add Component" a do vyhledávacího pole zadejte "BoxCollider2D". Vyberte jej ze seznamu výsledků a komponenta bude přidána k postavě.

Po přidání urychlovače můžete upravit jeho rozměry a polohu tak, aby odpovídaly velikosti a tvaru postavy. K tomu můžete použít nástroje pro úpravu urychlovače v okně Scene nebo se řídit velikostí skřítka postavy.

Nyní, když jsme k naší postavě přidali fyziku a urychlovače, můžeme je použít k řízení jeho pohybu a detekci kolizí v dalších krocích.

Vytvoření skriptu pro správu postavy

K vytvoření skriptu, který vám umožní ovládat postavu, budete potřebovat znalost programovacího jazyka C# a vývojového prostředí Unity. Začněte vytvořením nového skriptu ve složce projektu.

Otevřete vytvořený skript ve vybraném vývojovém prostředí a přidejte následující kód:

V tomto skriptu oznamujeme proměnné odpovědné za komponentu Rigidbody2D a stav postavy isJumping. Definujeme také veřejné pole jumpForce, které nám umožňuje přizpůsobit sílu skoku.

V metodě Start() získáme komponentu Rigidbody2D pomocí GetComponent () z aktuálního objektu (postavy).

Metoda Update () je vyvolána každým snímkem a sleduje stisk skokové klávesy. Pokud je stisknuta klávesa skoku a postava není schopna skoku, přidáme sílu skoku po svislé ose pomocí metody AddForce(). Poté nastavíme stav isJumping na true.

Metoda oncollisionenter2d () je vyvolána, když postava narazí na jiný objekt. Pokud má objekt, ke kterému došlo ke srážce, značku "Ground", nastavíme stav isJumping na false, což umožňuje postavě provést další skok.

Nyní, když jsme vytvořili skript pro ovládání postavy, můžeme jej použít na objekt postavy v Unity, aby postava mohla provádět skoky.

Realizace skoku ve skriptu

Na začátku skriptu oznámíme několik proměnných, které budou použity k přizpůsobení skoku:

public float jumpForce = 5f; private bool isJumping = false; private Rigidbody2D rb;

Proměnná jumpForce určuje sílu, se kterou bude postava skákat. Proměnná isJumping bude použita ke kontrole, zda je postava ve stavu skoku. Proměnná rb bude odkazovat na komponentu Rigidbody2D naší postavy.

Poté přidáme následující kód do metody Update skriptu:

if (Input.GetKeyDown(KeyCode.Space) && !isJumping)

Tento kód kontroluje, zda je stisknuta mezera (KeyCode.Space) a postava v tuto chvíli není ve stavu skoku (!isJumping). Pokud jsou splněny obě podmínky, nastavíme novou rychlost postavy nahoru po ose Y pomocí jumpForce. Také nastavujeme hodnotu proměnné isJumping na true, abychom zabránili opětovnému provedení skoku během skoku.

Ujistěte se, že váš projekt přidal komponentu Rigidbody2D k objektu postavy a připojte tento skript ke stejnému objektu.

Nyní je naše postava připravena ke skoku! Můžete upravit hodnotu jumpForce pro různé efekty skákání a v případě potřeby přidat další kontroly. Zhruba tak by měl vypadat kód pro skok ve 2D hře v Unity.

Testování a ladění

Jakmile implementujeme skript pro skok 2D postavy, je důležité provést testování a ladění, abychom se ujistili, že funguje správně. V této části se podíváme na několik užitečných tipů pro úspěšné testování a ladění našeho skriptu.

1. Testování funkčnosti:

  • Spusťte scénu a zkontrolujte, zda postava dokáže provést skok stisknutím mezerníku.
  • Ujistěte se, že postava nemůže provést druhý skok, dokud se nedotkne země.
  • Zkontrolujte, co postava vrací