IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

3. diel - 3D strieľačka v Unity - Práca s Asset Store a model zbrane

V minulej lekcii, 3D strieľačka v Unity - Otáčanie kamery pomocou myši , sme sa naučili ovládať pohľad herné postavy pomocou myši, zároveň definovať herný objekt novým spôsobom a pridávať silu v aktuálnom smere osí.

Teraz sa vrhneme na zbrane a streľbu. Aby sme mohli začať so streľbou, potrebujeme modely zbrane.

Unity Asset Store

Vďaka Unity Asset Store máme veľa možností, z ktorých môžeme vyberať. Obchod Unity je plný modelov ako zadarmo, tak aj platených. Budeme ale vyberať pozorne, niektoré zbrane nemusia obsahovať napríklad animácia nabíjania alebo spätného rázu. Ja som nám už pre náš projekt vybral vhodný balík z Asset Store, ktorý je zadarmo, obsahuje všetky animácie a nám sa bude do projektu hodiť. Teraz si ukážeme, ako ho dostať do nášho projektu.

Import balíka z Unity Asset Store

Najskôr zo všetkého klikneme na záložku Asset Store, ktorá sa nachádza hneď vedľa záložky Scene. Následne sa nám zmení okno Scene na okno Unity Asset Store:

Tvorba 3D hier v Unity

Stiahnutí balíčka

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

Tvorba 3D hier v Unity

Klikneme na miniatúru obrázku balíčka. Po otvorení uvidíme v pravej časti okna modré tlačidlo Download. Klikneme na neho.

Ak vám balík z Unity nejde stiahnuť, máte ho umiestnený v prílohe tohto článku.

Import balíčka do projektu

Až sa nám balík stiahne, uvidíme modré tlačidlo Import na rovnakom mieste ako pred chvíľou Download. Opäť klikneme. Po chvíľke sa otvorí vyskakovacie okno s nápisom Import Unity Package:

Tvorba 3D hier v Unity

Všetko necháme ako je a klikneme na tlačidlo import, ktoré sa v danom okne nachádza vpravo dole. Následne sa bude balíček nejaký čas importovať do nášho projektu. Po naimportovaní klikneme na záložku Scene a uvidíme zas svoju scénu a projekt.

V záložke Project máme novú zložku s názvom Low Poly F…. To je náš importovaná balíček. Dvakrát na priečinok klikneme:

Tvorba 3D hier v Unity

Obsah balíka

Balík, ktorý sme si stiahli a importovali, obsahuje úplne všetko, čo potrebujeme a budeme ešte potrebovať k tvorbe FPS strieľačky. Mžete si otvoriť súbor s názvom Assault_Rifle_01.Demo, ktorý sa nachádza v Assets -> Low Poly FPS PACK -> Demo_Scenes -> Weapon_Demo_Scenes -> Assault_Rifle_01_Demo. Otvorí sa vám už hotová demo scéna, kde stačí len stlačiť tlačidlo pre zapnutie hry a môžete hrať. Všetko, čo je v deme obsiahnuté, je z nášho naimportovaného balíčka. Balíček obsahuje aj skripty pre pohyb a ovládanie, ktoré ale budeme odstraňovať, pretože sa učíme programovať vlastné logiku hry a nie ju lepiť z cudzích skriptov:)

Vloženie objektu z balíčka na scénu

Nás bude zaujímať objekt rukou so zbraňou. Nebudeme vkladať celú postavu hráča, pretože by aj tak nebola z pohľadu prvej osoby našej hry vidieť.

V Hierarchy, v priečinku balíčku, klikneme na Prefabs. Potom na Example_P ... -> Arms -> Assault_Rif .... Zobrazí sa nám miniatúra obrázka a v ňom ruke so zbraňou. Pod ním je nápis Assault_Rif .... Na tento súbor klikneme ľavým tlačidlom myši a držíme, ťaháme myšou so súborom do okienka Hierarchy a následne tlačidlo pustíme. Týmto sa nám súbor presunie na scénu:

Tvorba 3D hier v Unity

Deaktivácia starého hráča (kapsule)

Teraz klikneme na objekt Capsule a odklikneme štvorček vedľa kocky:

Tvorba 3D hier v Unity

Týmto úkonom sme deaktivovali daný objekt. Ale nebojte, nerobili sme všetko v minulých lekciách zbytočne. Kapsulu sme robili hlavne kvôli našim skriptom, ktoré môžeme použiť na akýkoľvek objekt.

Odstránenie skriptov

Klikneme na objekt s názvom Assault_Rifle 01 _FPSController, ktorý sa nachádza v záložke Hierarchy. V pravej časti okna sa nám zobrazí záložka Inspector. Uvidíte už predpripravený skript autora balíčka. Skript sa volá Fps Controller LPFP (Script). Tento skript zmažeme a to tak, že klikneme na červeno vyznačenú oblasť na obrázku:

Tvorba 3D hier v Unity

Potom sa rozroluje zoznam činností, ktoré sa skriptom môžeme urobiť, my zvolíme Remove Component. Vďaka tomuto úkonu na našu hru nebude mať tento skript žiadny vplyv.

Rozbalenie Prefab

Stiahnutý objekt hráča je vytvorený ako prefab. V záložke Hierarchy klikneme opäť na objekt Assault_Rifle 01 _FPSController, tentoraz pravým tlačidlom. Rozroluje sa nám menu s možnosťami, kde zvolíme Unpack Prefab Completely. Týmto sa nám zo vzorového objektu, ktorý sme si importovali, stal náš vlastný objekt s vlastnosťami vzorového, ktoré môžeme ľubovoľne meniť:

Tvorba 3D hier v Unity

Umiestnenia hráča na terén

Keď už máme tento objekt rozkliknutí, zmeníme mu polohu, aby sa nachádzal na teréne. Zmeníme mu súradnice v záložke Inspector, podzáložka Transform. Súradnice si zvolíme ľubovoľne. Ja som napríklad zvolil v poradí x, y, z, hodnoty 5 ; 1.4 ; 5.

Odstránenie skriptov

Než pripojíme k hernému objektu svojej skripty pre pohyb, musíme vymazať posledný skripty, ktoré objekt má. Klikneme na ľavú šipičku hneď vedľa nášho herného objektu Assault_Rifle 01 _FPSController. Tým sa nám rozbalí podobjektoch, ktoré sú v spojení s naším hlavným objektom Assault_Rifle 01 _FPSController. Po rozbalení klikneme na šipičku podobjektoch Assault_Rifle 01 _Arms. Potom klikneme pravým tlačidlom na objekt nazvaný Player Canvas a vyberieme možnosť Delete:

Tvorba 3D hier v Unity

Akonáhle toto máme hotové, klikneme ľavým tlačidlom na objekt arms_assault_rifle 01 a zmažeme skript umiestnený na tomto objekte. Skript má názov Automatic Gun Script LPFP (Script).

Pretiahnutia objektu na kameru

Posledné, čo potrebujeme urobiť, než budeme môcť aplikovať naše skripty, je kliknúť ľavým tlačidlom na objekt arms_assault_rifle 01 a držať. Objektom ťaháme na miesto objekte Gun Camera (to je kamera nad zbraňou, ktorá už bola v balíčku). Vedľa objektu Gun Camera sa nám ukáže šipička a po kliknutí sa nám ako podobjektoch zobrazí práve ťahaný objekt arms_assault_rifle 01. Až budeme otáčať kameru, bude sa nám s ňou teraz otáčať aj zbraň. Pretože ak otočíme objektom, jeho podobjektoch sa otočí tiež:

Tvorba 3D hier v Unity

Aplikácie našich skriptov na objekt

Máme hotovo, poďme použiť naše skripty na nový objekt a hru sprevádzkovať.

Otáčanie hráča

Ako prvý klikneme na objekt Gun Camera. Ak si spomínate, na našej kameru sme umiestnili náš skript CameraMove. Teraz je Gun Camera našou kamerou, a preto na nej umiestnime náš skript. Klikneme na tlačidlo Add Component. Do vyhľadávacieho poľa napíšeme CameraMove a mali by sme vidieť náš skript:

Tvorba 3D hier v Unity

Akonáhle skript pridáme, musíme opäť definovať, kto je náš Player. Klikneme na koliesko v pravej časti poľa s nápisom None (Game Object) a vyberieme objekt s názvom Assault_Rifle 01 _FPSController:

Tvorba 3D hier v Unity

Ak si teraz hru spustíme, malo by sa nám dariť otáčať hráčom pomocou myši. Keďže sme si deaktivovali kapsulu (hráčov), tak sa nám deaktivovala aj naša stará kamera, ktorá je podobjektoch kapsule. Tým pádom sa nám bude zobrazovať obraz "natáčaný" novú Gun Camera. Táto kamera bola už v súbore Assault_Rifle_01_FPSController.

Pohyb hráča

Teraz už nám zostáva len pohyb hráčov. Klikneme ľavým tlačidlom na objekt Assault_Rifle 01 _FPSContoller a pridáme mu komponent (skript) s názvom Move, ako sme pred chvíľou pridali skript na otáčanie kamery na Gun Camera. Tento skript nám zabezpečuje pohyb hráčov. Keďže tento objekt už má na sebe Rigidbody, nemusíme zariaďovať nič iné, než pridať skript.

Dostali sme sa do stavu ako na začiatku, ale máme nové modely. Všimnite si, že hráč sa pohybuje ako chceme, ale nemáme žiadne animácie, ktoré by naznačovali pohyb.

Tvorba 3D hier v Unity

V budúcej lekcii, 3D strieľačka v Unity - Animácie zbrane pri chôdzi , sa naučíme pracovať s animáciami modelov a pridáme animáciu zbrane pri chôdzi.


 

Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 311x (25.06 MB)
Aplikácia je vrátane zdrojových kódov v jazyku C#

 

Predchádzajúci článok
3D strieľačka v Unity - Otáčanie kamery pomocou myši
Všetky články v sekcii
Tvorba 3D hier v Unity
Preskočiť článok
(neodporúčame)
3D strieľačka v Unity - Animácie zbrane pri chôdzi
Článok pre vás napísal Tomáš Brabec
Avatar
Užívateľské hodnotenie:
1 hlasov
Hodně zdaru programátoři všeho druhu,doufám ,že nikdy nezažijete nudu.
Aktivity