Unity 3D: Programujeme 2D střílečku

C# .NET Unity 3D Unity 3D: Programujeme 2D střílečku

Unity Logo

Zdravím vás konečně u prvního dílu tutoriálů na herní engin Unity3D! V minulém díle jsme se dozvěděli, jak Unity stáhnout a nainstalovat. Dnes se tedy vrhneme na první projekt. Spustíme si Unity a objeví se nám zhruba takovéto okno:

Unity3D úvdní obrazovka

Pojďme si ho probrat bod po bodu:

  • 1. Záložky s volbou načtení nebo vytvoření projektu.
  • 2. Lokace, ve které se projekt vytvoří. (Projekt pro Unity je podobně jako VisualStudio projekt v podstatě pouze složkou. Na rozdíl od VS nemá svůj specifický spouštěcí soubor. Unity bere jako projekt celou složku.)
  • 3. Nastavit projekt defaultně jako 2D nebo 3D.
  • 4. Vytvořit projekt.

Položky pod červeným křížem jsou některé defaultní resources, které můžete použít. Já je však nedoporučuji, kvůli ne zrovna velké kvalitě a hlavně jejich do nebe volající neoptimalizova­nosti. A pokud je později budete potřebovat, můžete si je importovat přímo z Unity.

Ale teď již konečně k našemu tutoriálu: Založíme si nový projekt. Umístění můžeme nechat defaultní v dokumentech, ale konec cesty přejmenujeme na jakékoli smysluplné jméno. Nastavíme ho jako 2D projekt a klikneme na Create.

Parametry nového projektu.

Co to vlastně bude?

No a nyní je čas na malou motivaci. Zatímco se bude váš projekt vytvářet, ukážeme si, co bychom měli na konci tutoriálu umět.

2D sidescroller střílečka v Unity

Programovat budeme 2D sidescroller střílečku a to včetně pokročilých herních mechanismů jako: Zvuky, Animace, AI, particles atd.

Unity particle systém v akci.

Tak co, natěšení?

Jazyky v Unity

Nejdříve si ujasněme v jakém jazyce budeme pracovat. Unity podporuje tři jazyky:

  • JavaScript (UnityScript)
  • C#
  • Boo

Na našem projektu budeme pracovat v jazyce C#. Proč? Jednak ho umím ze zmíněných nejlépe a také je to High Level jazyk, který se užívá prakticky všude a je po něm také vysoká poptávka. Navíc v poslední době je pro práci s ním Unity více optimalizované.

  • Co pokud jste totální nováčci co se her týče?

Pokud jenom co se her týče, je to bez problému. V tomto tutoriálu se vám pokusím vysvětlit co nejlépe každý ohled tvorby her. Od programování přes design až po grafiku.

  • Co pokud jste nováček programování obecně?

V tom případě je to problém. Tvorba her je pokročilým odvětvím programování. I přes to, že v tomto tutoriálu tolik programovat nebudeme, nemáme tu příliš čas ani prostor na řešení jednodušších skriptů v C#. Proto vás tedy prosím. Pokud jste nováček prostudujte si zdejší tutoriály na C# a pak se sem vraťte. Vřelé díky.

My ostatní tedy pokračujme. Možná se vám nyní zdá, že na vás vyskočil software tak složitý, že se v něm nikdy nezorientujete. Věřte mi, tohle je ještě dobré :). Ale ne, vážně. Po pár hodinách práce si zvyknete a už nikdy nebudete chtít jinak.

  • Ale když už jsme u toho UI, tak proč si to neulehčit že?

Unity pracuje v takzvaných layoutech, tedy rozloženích oken. Toto rozložení si můžete dle libosti měnit. My ale použijeme jedno z předpřipravených a mírně si ho upravíme.

Rozhraní

Klikneme na layout a zvolíme: TALL layout.

Klikneme na layout a zvolíme: TALL layout.

Poté přetáhneme záložku hierarchy a tab až bude náš layout vypadat takto:

Takhle to bude vypadat.

Poslední úprava co provedeme, bude kliknutí na tři čárky vedle zámečku v project tabu.

Layouty v Unity3d

Zde klikneme na one collumn layout a máme hotovo :)

Samozřejmě můžete si layout upravit dle vašich preferencí, ale v tutoriálu budeme používat tento.

Složky

Dále si musíme udělat pořádek co se složek týče. Ve hře budeme používat několik typů souborů. Pojďme si tedy vytvořit složky, ať v tom nemáme později nepořádek. Nezapomeňte, že složka se tvoří pomocí pravého kliknutí v prostoru project okna a CREATE -> FOLDER. Vytvoříme si tedy následující hierarchii:

Hierarchie složek v Unity

Nyní si vysvětlíme, co kde bude:

  • Prefabs: Znovu použitelné objekty ve hře. Můžete je použít v jakékoli scéně a v případě změny na jednom se poté projeví všude.
  • Scenes: Zde budeme mít uložené svoje herní scény.
  • Scripts: Zde bude naše herní logika/ skripty
  • Sounds: Zvuky, hudba
  • Textures: Toto je poměrně zavádějící, jelikož nejde o textury, ale o sprity, protože tvoříme 2D hru. Každopádně Unity má nějakou optimalizaci právě na tuto složku, takže použijeme ji.

Naše první scéna

Jako první si tedy potřebujeme vytvořit scénu, ve které hru budeme tvořit. To provedeme klávesovou zkratkou CTRL-N nebo kliknutím na: FILE -> NEW SCENE.

Hned po založení nové scény si ji pomocí CTRL-S uložíme do složky scenes. Klíčem k úspěchu je orientace a jednoduchost. Pokud se od začátku budeme snažit o přehlednost a jednoduchost, bude život mnohem lehčí. Zvlášť, až budete mít ve scéně kolem 1 tisíce objektů (ano, i to je možné a pak aby se v nikdo nevyznal). Proto si založíme jakési "složky" i přímo ve scéně. Jak jste si již možná všimli, veškeré informace o scéně drží okno Hierarchy. Zde máme i náš první objekt - MainCameru. Té si nebudeme nyní všímat a připravíme si dnes poslední věc - složky ve scéně. Ty se dělají pomocí Empty Objektů, které vytvoříte: GAMEOBJECT -> CREATE EMPTY. Tyto objekty nám poslouží jako složky do budoucna.

Složky v Unity scéně

Ani jeden z objektů (kromě kamery samozřejmě) není nositelem žádné komponenty ani scriptu. To znamená, že jediné co dělají, je, že existují. V podstatě jako prázdná složka. Jsou tam, ale nic nedělají a ani v sobě nic nemají.

  • GUI: Zde budou všechny Game User Interface scripty atd...
  • Level: Zde budou všechny objekty. Od pozadí přes objekty v dálce až po hráče a nepřátele.
  • Render: V podstatě jen držitel kamery atd. Později bude mít na starost particle efekty, světla, mlhu atd.
  • Scripts: Tento objekt bude mít na starosti všechny globální skripty. MusicHandler, ParticleHandler bude držet údaje o jednotlivých NPC a hráči.

Ještě se přesvědčte, že všechny objekty kromě kamery jsou na pozici 0,0,0.

Tím jsme tedy úspěšně dokončili poslední přípravy na tvorbu naší hry! Příště se podíváme na nějaké další základy jako je třeba: Pozadí scény a jednoduché oživení scény pomocí několika objektů.

Budu se na váš těšit a do té doby můžete zkusit studovat kupříkladu oficiální Unity tutoriály


 

Stáhnout

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

 

  Aktivity (1)

Článek pro vás napsal Vojtěch Pospíchal
Avatar
Autor se už přes 4 a půl roku věnuje programování převážně v jazyce C# a Unity Script za pomocí herního enginu Unity. Má také zkušenosti s Javou a webovými technologiemi.

Jak se ti líbí článek?
Celkem (15 hlasů) :
55555


 


Miniatura
Předchozí článek
Unity3D - Stažení a instalace
Miniatura
Všechny články v sekci
Programování her v Unity3D v C# .NET
Miniatura
Následující článek
Unity 3D - Střelba projektilů

 

 

Komentáře
Zobrazit starší komentáře (33)

Avatar
Vojtěch Pospíchal:

Ještě uvidím jak to pořeším. Pravděpodobně stream na youtube (měl by se pak automaticky uložit jako video). Link zveřejním hned jakmile bude jasno v tom, jak to provedu.

 
Odpovědět  +3 6.7.2015 0:07
Avatar
Neaktivní uživatel:

den je prič,je večer a já se tak těšil ;-( .....ikdyž po delší době čekání bude logicky lepší příprava a video bude kvalitnější...ikdyž jestli budu čekat dlouho to natěšení natlakuje přesně na 800.69 Megapaskalů a vybouchnu v obrovskou explozi konfet a orgánu.....kdyby ve varnsdorfu hlásili teroristickej útok mněl jsem vás všechny moc rád :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D :-D

Odpovědět 7.7.2015 0:00
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Vojtěch Pospíchal:

Založil jsem na to téma, nikdo se nevyjádřil, tak jsem usoudil, že zájem není. Pro jednoho či dva lidi to logicky nemá smysl.

 
Odpovědět 7.7.2015 0:05
Avatar
tomasmanhal
Člen
Avatar
Odpovídá na Vojtěch Pospíchal
tomasmanhal:

To je trošku úvaha špatným směrem ne?...Spousta lidí si tvé video najde později, třeba nemají z jakýchkoliv důvodů čas přijít na livestream a rádi se podívají ze záznamu. Hlavně se k videím může někdo připlést nebo vrátit klidně po pár měsících. Nevím proč tak tlačíš na tu živé přenosy, když samotná videa, která si najdou diváky jindy, jsou neméně důležitá.

PS: Žádné založené téma nevidím. Lepší bude když sem hodíš odkaz na tvůj YT channel, kam se budeme moci podívat když bude volno a chuť, případně odebírat.

Odpovědět 7.7.2015 0:14
Kdyby nám dodali k životu zdrojový kód, vše by bylo jednodušší...
Avatar
Odpovídá na tomasmanhal
Vojtěch Pospíchal:

Celý princip toho na čem jsem chtěl stavět je interakce s diváky. Pokud bych měl dělat video o nějakém tématu a to nebylo oživeno nějakou interakcí, tak už můžu rovnou pouze odkázat na oficiální live tréninky (popřípadě k nim pouze udělat titulky pro lidi kteří se s AJ nesmíří).

 
Odpovědět 7.7.2015 0:20
Avatar
Odpovídá na tomasmanhal
Vojtěch Pospíchal:

EDIT://Double post

Editováno 7.7.2015 0:21
 
Odpovědět 7.7.2015 0:20
Avatar
Antonín Jehlář:

No až teď se učím s Unity3D a tedy až teď jsem narazil na toto vlákno. Za mě souhlas s tomasmanhal celkem mě mrzí, že jsem tu našel pouze založení scény.

Odpovědět  +1 30.7.2015 18:21
Předstírat hloupost na správném místě je někdy velice moudré.
Avatar
byzanth25
Člen
Avatar
byzanth25:

Presne tak, ja som to tiez nasiel az teraz... a pripajam sa k nazoru chalanov...

 
Odpovědět  +1 11.11.2015 12:50
Avatar
Tomáš Brůna
Redaktor
Avatar
Tomáš Brůna:

přesně, škoda že seriál nepokřačuje :(

Odpovědět  +1 11.11.2015 14:46
Lepší být šprt než blbec :)
Avatar
Honza.G
Člen
Avatar
Honza.G:

Čau, nepokračoval bys v těchto tutoriálách dál? Pomáhaj mi. Předem dík

 
Odpovědět 6. srpna 20:38
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.

Zobrazeno 10 zpráv z 43. Zobrazit vše