September discount week
Pouze tento týden sleva až 80 % na e-learning týkající se MS Office
50 % bodů zdarma na online výuku díky naší Slevové akci!

Lekce 3 - 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.

Nyní se vrhneme na zbraně a střelbu. Abychom mohli začít se střelbou, potřebujeme modely zbraně.

Unity Asset Store

Díky 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. Budeme ale vybírat pozorně, některé zbraně nemusejí obsahovat například animace nabíjení nebo zpětného rázu. Já jsem nám již pro náš projekt vybral vhodný balíček z Asset Store, který je zdarma, obsahuje všechny animace a nám se bude do projektu hodit. Teď si ukážeme, jak ho dostat do našeho projektu.

Import balíčku z Unity Asset Store

Nejdříve ze všeho klikneme na záložku Asset Store, která se nachází hned vedle záložky Scene. Následně se nám změní okno Scene na okno Unity Asset Store:

Stažení balíčku

Do okna s nápisem Search for assets napíšeme: Low Poly FPS Pack – Free (Sample):

Klikneme na miniaturu obrázku balíčku. Po otevření uvidíme v pravé části okna modré tlačítko Download. Klikneme na něj.

Pokud vám balíček z Unity nejde stáhnout, máte ho umístěný v příloze tohoto článku.

Import balíčku do projektu

Až se nám balíček stáhne, uvidíme modré tlačítko Import na stejném místě jako před chvílí Download. Opět klikneme. Po chvilce se otevře vyskakovací okno s nápisem Import Unity Package:

Vše necháme jak je a klikneme na tlačítko import, které se v daném okně nachází vpravo dole. Následně se bude balíček nějaký čas importovat do našeho projektu. Po naimportování klikneme na záložku Scene a uvidíme zas svoji scénu a projekt.

V záložce Project máme novou složku s názvem Low Poly F…. To je náš naimportovaný balíček. Dvakrát na složku klikneme:

Obsah balíčku

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Balíček, který jsme si stáhli a naimportovali, obsahuje úplně vše, co potřebujeme a budeme ještě potřebovat k tvorbě FPS střílečky. Mžete si otevřít soubor s názvem Assault_Rifle_01.Demo, který se nachází v Assets -> Low Poly FPS PACK -> Demo_Scenes -> Weapon_Demo_Scenes -> Assault_Rifle_01_Demo. Otevře se vám již hotová demo scéna, kde stačí pouze zmáčknout tlačítko pro zapnutí hry a můžete 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.

V Hierarchy, ve složce balíčku, klikneme na Prefabs. Poté na Example_P… -> Arms -> Assault_Rif…. Zobrazí se nám miniatura obrázku a v něm ruce se zbraní. Pod ním je nápis 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:

Deaktivace starého hráče (kapsle)

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

Tímto úkonem jsme deaktivovali daný objekt. Ale nebojte, nedělali jsme vše v minulých lekcích zbytečně. Kapsli jsme dělali hlavně kvůli našim skriptům, které můžeme použít na jakýkoliv objekt.

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íte již předpřipravený skript autora balíčku. Skript se jmenuje Fps Controller LPFP (Script). Tento skript smažeme a to tak, že klikneme na červeně vyznačenou oblast na obrázku:

Poté se rozroluje seznam činností, které se skriptem můžeme udělat, my zvolíme Remove Component. Díky tomuto úkonu na naši hru nebude mít tento skript žádný vliv.

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:

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 šipičku 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 šipičku podobjektu Assault_Rifle01_Ar­ms. Poté klikneme pravým tlačítkem na objekt nazvaný Player Canvas a vybereme možnost Delete:

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 (to je kamera nad zbraní, která již byla v balíčku). Vedle objektu Gun Camera se nám ukáže šipička a po kliknutí se nám jako podobjekt zobrazí právě tažený objekt arms_assault_ri­fle01. 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 otočí též:

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. Pokud si vzpomínáte, na naší kameru jsme 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 měli bychom vidět náš skript:

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:

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, jako jsme před chvílí 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.

Dostali jsme se do stavu jako na začátku, ale máme nové modely. Všimněte si, že hráč se pohybuje jak chceme, ale nemáme žádné animace, které by naznačovaly pohyb.

V příští lekci, 3D střílečka v Unity - Animace zbraně při chůzi, se naučíme pracovat s animacemi modelů a přidáme animaci zbraně při chůzi.


 

Stáhnout

Staženo 2x (25.07 MB)
Aplikace je včetně zdrojových kódů v jazyce C# .NET

 

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
Článek pro vás napsal Tomáš Brabec
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
Hodně zdaru programátoři všeho druhu,doufám ,že nikdy nezažijete nudu.
Aktivity (7)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!