Unity je jednou z nejpopulárnějších herních platforem, která poskytuje obrovské množství nástrojů a možností pro vývoj her. Kódování je jednou ze základních dovedností, které se musíte naučit, abyste vytvořili zajímavé a zábavné herní mechaniky.
Jedním z prvních kroků při vytváření herního projektu v Unity je psaní kódu pro pohyb postavy. Chůze je jednou z hlavních animací, které je třeba implementovat. V tomto tutoriálu se podíváme na to, jak vytvořit kód chůze v Unity.
Než přejdete na psaní kódu, musíte mít představu o základních konceptech, jako jsou komponenty a skripty v Unity. Komponenty jsou moduly, které lze přidat do herních objektů, aby jim poskytly různé funkce. Skripty jsou kousky kódu, které budeme psát pro správu herních objektů.
Jednou z hlavních součástí, kterou budeme potřebovat k realizaci chůze, je součást Animator. Animator vám umožňuje vytvářet a spravovat animace postavy. Použijeme ho k ovládání animace chůze naší postavy. Nejprve vytvoříme prázdný herní objekt a přidáme k němu komponentu Animator přes okno Inspector.
Lekce: kód chůze v Unity
V tomto tutoriálu se podíváme na základy psaní kódu chůze v Unity. Nejprve budete muset vytvořit skript, který bude ovládat pohyb postavy. Poté přidejte tento skript do své postavy v Unity.
Pro začátek identifikujte proměnné, které budou použity k ukládání informací o rychlosti a směru pohybu postavy. Poté v kódu můžete pomocí funkcí nastavit tyto hodnoty.
Poté napište funkci pro pohyb postavy. V této funkci budete používat vestavěné funkce v Unity, jako je" Translate "nebo"Move". Můžete také určit směr pohybu pomocí vektorů.
Chcete-li aktivovat pohyb postavy, přidejte výzvu funkce pohybu do funkce aktualizace ve skriptu. Tato funkce vyvolá každý snímek a aktualizuje stav postavy.
Nyní, když jste napsali kód chůze pro svou postavu v Unity, můžete spustit hru a vidět, jak se postava realisticky pohybuje.
V tomto tutoriálu jsme se podívali na základy kódu chůze v Unity. Tyto znalosti můžete použít k vytvoření různých animací pohybu postav ve vaší hře. Je to jen začátek a v budoucnu můžete doplnit funkčnost kódu.
Začátek programování pohybu
Než začnete programovat, musíte mít základní porozumění fungování Unity a znát základy programovacího jazyka C#. Pokud nejste obeznámeni s těmito tématy, je dobré se seznámit s příslušnou dokumentací nebo absolvováním základních lekcí Unity.
Při vytváření kódu pro pohyb je důležité mít na paměti, že objekty v jednotě mají složku Rigidbody, která je zodpovědná za fyzické chování. K realizaci pohybu objektu proto použijeme metody této součásti.
Prvním krokem je přidat komponentu Rigidbody k objektu postavy. Chcete-li to provést, musíte zvýraznit objekt ve scéně a v okně Inspector kliknout na tlačítko "Add Component" (přidat komponentu). Ve vyhledávání je třeba vytočit "Rigidbody" a vybrat jej.
Po přidání komponenty Rigidbody se zobrazí přístup k jeho vlastnostem a metodám ve skriptech hry. K programování pohybu budeme potřebovat metodu MovePosition, která vám umožní přesunout objekt na určenou pozici. Metoda bere vektor (Vector3) jako argument – to je a bude naše cílová pozice pro pohyb.
Nejjednodušší implementací pohybu bude čtení vstupu od uživatele a přenos výsledné hodnoty do metody MovePosition. Klávesy WASD lze například použít k chůzi vpřed, doleva, dozadu a doprava.
void Update()
V tomto příkladu používáme funkci Update, která je vyvolána každým rámcem a čte vstup od uživatele. Metoda Input.GetAxis umožňuje získat hodnotu mezi -1 a 1 v závislosti na stisknuté klávese. Poté vytvoříme vektor moveInput ze získaných hodnot pro osy Horizontal (horizontální osa) a Vertical (vertikální osa).
Poté normalizujeme vektor moveInput, abychom získali jednotkový vektor dané délky, a vynásobíme jej hodnotou moveSpeed, abychom získali skutečnou rychlost pohybu.
Poté použijeme metodu MovePosition komponenty Rigidbody k přesunu objektu na aktuální pozici plus vektor pohybu.
Toto je základní implementace kódu chůze v Unity. Dále můžete přidat zpracování překážek, animace a další podrobnosti v závislosti na požadavcích vaší hry.
Použití kláves k ovládání pohybu
Unity má možnost používat klávesy na klávesnici k ovládání pohybu objektu ve hře. K tomu používáme skript pro ovládání pohybu a připojujeme jej k objektu.
Zde je jednoduchý skript pro ovládání pohybu pomocí kláves klávesnice:
V tomto skriptu používáme funkci Update (), která je vyvolána každým rámcem hry. Poté zkontrolujeme, zda je určitá klávesa (W, S, A nebo D) stisknuta pomocí funkce Input.GetKey(). Pokud je stisknuta klávesa, provedeme určitou akci - pohyb vpřed, vzad, doleva nebo doprava.
Nastavujeme také rychlost pohybu objektu pomocí proměnné moveSpeed. V uvedeném příkladu je 5F, ale můžete si jej přizpůsobit, jak chcete.
Chcete-li tento skript použít, jednoduše vytvořte nový skript v Unity, zkopírujte a vložte kód a poté jej přivažte k objektu, který chcete ovládat pomocí kláves klávesnice.
Nyní, když spustíte hru, budete moci pohybovat objekt dopředu, dozadu, doleva a doprava pomocí kláves klávesnice!
Realizace animace postavy při chůzi
Chcete-li vytvořit realistický efekt chůze, je nutné naučit postavu hrát animace při pohybu. K tomu Unity používá animační systém Mecanim, který vám umožňuje vytvářet a spravovat animace.
Prvním krokem při realizaci animace chůze je vytvoření animací samotné postavy. K tomu je nutné rozdělit animační režim do několika stavů: stání, chůze dopředu, chůze dozadu, chůze doleva a chůze doprava. Každý stát musí mít svou vlastní animaci.
Poté je nutné upravit přechody mezi stavy. Například při stisknutí tlačítka vpřed musí postava přejít do stavu chůze dopředu a při uvolnění tlačítka do stavu stání.
Chcete-li implementovat tuto logiku, musíte vytvořit skript pro postavu. V tomto skriptu je třeba určit, která tlačítka jsou zodpovědná za pohyb a jak by měla ovlivnit model postavy. Například při stisknutí tlačítka " W "by se postava měla pohybovat dopředu, stisknutím tlačítka" S " dozadu a tak dále.
Když stisknete tlačítko, skript by měl změnit hodnotu proměnné, která bude ovládat stav animace. V závislosti na hodnotě této proměnné by pak měla nastat změna animace.
Při chůzi vpřed se tedy musí přehrávat animace chůze vpřed, při zpomalení - animace stání, a tak dále.
Kromě toho můžete přidat různé detaily, aby byla animace realističtější. Můžete například přidat rychlost pohybu postavy do skriptu a poté ji použít ke změně rychlosti přehrávání animací. Postava se tak bude pohybovat rychleji nebo pomaleji v závislosti na rychlosti pohybu.
V důsledku správné implementace animace se postava při chůzi bude přirozeně pohybovat a její pohyby budou vypadat hladce a realisticky.