NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Lekce 4 - 3D střílečka v Unity - Práce s Asset Store a model zbraně

V minulé lekci, 3D střílečka v Unity - Otáčení kamery pomocí myši, jsme se naučili ovládat pohled herní postavy pomocí myši, zároveň definovat herní objekt novým způsobem a přidávat sílu v aktuálním směru os.

V dnešním Unity 3D tutoriálu se naučíme importovat balíčky z obchodu Unity Asset Store a pracovat s nimi. Naším cílem bude přidání modelu zbraně do hry.

V tomto kurzu použijeme speciální balíček, který již není dostupný v Unity Asset Store. Místo toho si ho stáhneme přímo zde, pod tímto článkem.

Obchod Unity Asset Store

Díky obchodu Unity Asset Store máme spoustu možností, ze kterých můžeme vybírat. Obchod Unity je plný modelů jak zadarmo, tak i placených. Ukážeme si jak vyhledat, stáhnout a naimportovat balíček z Unity Asset Store, který je zdarma :-)

Stažení a import balíčku z Unity Asset Store

Pro získání assetu do hry se musíme přihlásit na oficiální stránce Unity Asset Store přes vlastní Unity účet:

Tvorba 3D her v Unity

Stažení balíčku z Unity Asset Store

Do vyhledávacího pole napíšeme název našeho požadované balíčku například: Low Poly FPS Pack. Vpravo zaklikneme políčko volné zdroje, aby se nám ukázaly assety, které jsou zdarma:

Tvorba 3D her v Unity

Klikneme na miniaturu obrázku balíčku LOW POLY GUNS. Po otevření uvidíme v pravé části modré tlačítko přidat do mých zdrojů. Klikneme na něj. Následně klikneme na tlačítko Otevřít v Unity. Po kliknutí se nám ukáže vyskakovací okno, ve kterem klikneme na Spustit v aplikaci Unity Editor.

Tvorba 3D her v Unity

Poté se nám otevře Unity Editor a ukáže se okno Package Manager s našim přidaným assetem. Vpravo dole klikneme na tlačítko Download:

Tvorba 3D her v Unity

Import balíčku do projektu

Po stáhnutí balíčku klikneme na tlačítko Import, které se zobrazí na stejném místě, jako před chvílí tlačítko Download. Po chvilce se otevře vyskakovací okno s nápisem Import Unity Package:

Tvorba 3D her v Unity

V pravém dolním rohu klikneme na tlačítko Import. Nyní se bude balíček nějaký čas importovat do našeho projektu.

V záložce Project nyní vidíme novou složku s názvem importovaného balíčku. To je náš naimportovaný balíček. Dvakrát na složku klikneme:

Tvorba 3D her v Unity

Stažení a import balíčku z tohoto článku

Nyní si stáhneme a naimportujeme balíček, který již není v Unity Asset Store. S tímto balíčkem budeme pracovat, až do konce tohoto kurzu.

Stažení balíčku z tohoto článku

Na konci tohoto článku najdete tlačítko ke stažení balíčku:

Tvorba 3D her v Unity

Klikneme na něj a stáhneme soubor do svého počítače. Po stažení souboru ho rozbalíme, abychom viděli tento soubor připravený k importu:

Tvorba 3D her v Unity

Import balíčku do Unity projektu

Ujistíme se, že máme otevřený náš Unity projekt. Následně otevřeme stažený soubor. Po otevření balíčku se objeví vyskakovací okno Import Unity Package, kde je zobrazen obsah balíčku:

Tvorba 3D her v Unity

V pravém dolním rohu klikneme na tlačítko Import. Balíček se nyní začne importovat do našeho projektu.

Kontrola naimportovaného balíčku

Po dokončení importu najdeme v záložce Project novou složku s názvem Low Poly F…, která obsahuje naimportovaný balíček. Pro přístup k obsahu dvakrát klikneme na složku:

Tvorba 3D her v Unity

Demo importovaného balíčku

Nyní si vyzkoušíme funkčnost importovaného balíčku na demu, který obsahuje. Ze složky Assets/Low Poly FPS PACK/Demo_Scenes/Weapon_Demo_Scenes/Assault_Rifle_01_Demo/ si spustíme soubor Assault_Rifle_01.Demo. Otevře se nám již hotová demo scéna, kde stačí pouze stisknout tlačítko pro zapnutí hry a můžeme hrát. Vše, co je v demu obsaženo, je z našeho naimportovaného balíčku.

Balíček obsahuje i skripty pro pohyb a ovládání, které ale budeme odstraňovat, protože se učíme programovat vlastní logiku hry a ne ji lepit z cizích skriptů :)

Vložení objektu z balíčku na scénu

Nás bude zajímat objekt rukou se zbraní.

Nebudeme vkládat celou postavu hráče, protože by stejně nebyla z pohledu první osoby naší hry vidět.

Ve složce balíčku přejdeme do složky Assets/Low Poly FPS PACK/Prefabs/Example_P…/Arms/, v které se nachází soubor s obrázkem ruce se zbraní s názvem Assault_Rif…. Na tento soubor klikneme levým tlačítkem myši a držíme, táhneme myší se souborem do okénka Hierarchy a následně tlačítko pustíme. Tímto se nám soubor přesune na scénu:

Tvorba 3D her v Unity

Deaktivace starého hráče (kapsle)

Nyní klikneme na objekt Capsule a odklikneme čtvereček vedle krychle:

Tvorba 3D her v Unity

Tímto úkonem jsme deaktivovali objekt kapsle, který budeme nahrazovat našim novým objektem rukou se zbraní.

Odstranění skriptů

Klikneme na objekt s názvem Assault_Rifle01_FPSCon­troller, který se nachází v záložce Hierarchy. V pravé části okna se nám zobrazí záložka Inspector. Uvidíme již předpřipravený skript autora balíčku. Skript se jmenuje Fps Controller LPFP (Script). Tento skript smažeme kliknutím na zvýrazněné tři tečky a výběrem Remove Component z roletového menu:

Tvorba 3D her v Unity

Rozbalení prefabu

Stažený objekt hráče je vytvořený jako prefab. V záložce Hierarchy klikneme opět na objekt Assault_Rifle01_FPSCon­troller, tentokrát pravým tlačítkem. Rozroluje se nám menu s možnostmi, kde zvolíme Unpack Prefab Completely. Tímto se nám ze vzorového objektu, který jsme si naimportovali, stal náš vlastní objekt s vlastnostmi vzorového, které můžeme libovolně měnit:

Tvorba 3D her v Unity

Umístění hráče na terén

Když již máme tento objekt rozkliknutý, změníme mu polohu, aby se nacházel na terénu. Změníme mu souřadnice v záložce Inspector, podzáložka Transform. Souřadnice si zvolíme libovolně. Já jsem například zvolil v pořadí x, y, z, hodnoty 5,1.4,5.

Odstranění skriptů

Než připojíme k hernímu objektu své skripty pro pohyb, musíme vymazat poslední skripty, které objekt má. Klikneme na levou šipku hned vedle našeho herního objektu Assault_Rifle01_FPSCon­troller. Tím se nám rozbalí podobjekty, které jsou ve spojení s naším hlavním objektem Assault_Rifle01_FPSCon­troller. Po rozbalení klikneme na šipku podobjektu Assault_Rifle01_Ar­ms. Poté klikneme pravým tlačítkem na objekt nazvaný Player Canvas a vybereme možnost Delete:

Tvorba 3D her v Unity

Jakmile toto máme hotové, klikneme levým tlačítkem na objekt arms_assault_ri­fle01 a smažeme skript umístěný na tomto objektu. Skript má název Automatic Gun Script LPFP (Script).

Přetažení objektu na kameru

Poslední, co potřebujeme udělat, než budeme moci aplikovat naše skripty, je kliknout levým tlačítkem na objekt arms_assault_ri­fle01 a držet. Objektem táhneme na místo objektu Gun Camera, což je kamera nad zbraní, která již byla v balíčku. Vedle objektu Gun Camera se nám ukáže šipka a po kliknutí se nám jako podobjekt zobrazí právě tažený objekt arms_assault_ri­fle01:

Tvorba 3D her v Unity

Až budeme otáčet kameru, bude se nám s ní nyní otáčet i zbraň. Protože pokud otočíme objektem, jeho podobjekty se také otočí.

Aplikace našich skriptů na objekt

Máme hotovo. Pojďme použít naše skripty na nový objekt a hru zprovoznit.

Otáčení hráče

Jako první klikneme na objekt Gun Camera. Dříve jsme na naší kameru umístili náš skript CameraMove. Nyní je Gun Camera naší kamerou, a proto na ní umístíme náš skript. Klikneme na tlačítko Add Component. Do vyhledávacího pole napíšeme CameraMove a přidáme náš skript:

Tvorba 3D her v Unity

Jakmile skript přidáme, musíme opět definovat, kdo je náš Player. Klikneme na kolečko v pravé části pole s nápisem None (Game Object) a vybereme objekt s názvem Assault_Rifle01_FPSCon­troller:

Tvorba 3D her v Unity

Další možností je chytnout objekt Assault_Rifle01_FPSCon­troller a přetáhnout do proměnné Player.

Pokud si nyní hru spustíme, mělo by se nám dařit otáčet hráčem pomocí myši. Jelikož jsme si deaktivovali kapsli (hráče), tak se nám deaktivovala i naše stará kamera, která je podobjektem kapsle. Tím pádem se nám bude zobrazovat obraz "natáčený" novou Gun Camera. Tato kamera byla již v souboru Assault_Rifle_01_FPSController.

Pohyb hráče

Teď už nám zbývá jen pohyb hráče. Klikneme levým tlačítkem na objekt Assault_Rifle01_FPSCon­toller a přidáme mu komponentu (skript) s názvem Move, podobně jako jsme přidali skript na otáčení kamery na Gun Camera. Tento skript nám zajišťuje pohyb hráče. Jelikož tento objekt již má na sobě Rigidbody, nemusíme zařizovat nic jiného, než přidat skript.

Při spuštění hry zjistíme, že se náš hráč hýbe pomalu. To je zapříčiněno váhou hráče u komponenty Rigidbody. Pro zvýšení rychlosti stačí změnit hodnotu z puvodnich 5 na menší číslo, například na 0.6:

Tvorba 3D her v Unity

Dostali jsme se do stavu jako na začátku, ale máme nové modely:

Tvorba 3D her v Unity

V následujícím kvízu, Kvíz - Terén, hráč, otáčení kamery, Asset Store v Unity3D, si vyzkoušíme nabyté zkušenosti z předchozích lekcí.


 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 437x (25.06 MB)

 

Předchozí článek
3D střílečka v Unity - Otáčení kamery pomocí myši
Všechny články v sekci
Tvorba 3D her v Unity
Přeskočit článek
(nedoporučujeme)
Kvíz - Terén, hráč, otáčení kamery, Asset Store v Unity3D
Článek pro vás napsal Tomáš Brabec
Avatar
Uživatelské hodnocení:
51 hlasů
Hodně zdaru programátoři všeho druhu,doufám ,že nikdy nezažijete nudu.
Aktivity