01. Editor a projekt

V nasledujúcich lekciách vyrobíme našu prvú jednoduchú hru: stolný minigolf. Lebo ak existuje stolný tenis, prečo by nemohol stolný minigolf, že?

Vytvorme si nový projekt a nazvime ho MojaHra. Privíta nás okno editora s prázdnym novým projektom. Farebne som vyznačil najdôležitejšie súčasti editora, ktoré si teraz prejdeme.

Scéna

Toto je 3D pohľad na game objekty v našej hre. Zatiaľ máme v scéne len kameru a svetlo, ale to časom zmeníme. Scéna sa správa podobne ako iné 3D editory, vyskúšajte si pohyb v scéne pomocou myši:

  • Koliesko – zoom
  • Stredné tlačidlo (resp. stlačenie kolieska) – posúvanie
  • Pravé tlačidlo – lietanie v scéne. Pohyb myšou otáča pohľad, klávesy WSAD posúvajú pohľad dopredu, dozadu, doľava a doprava.
  • Alt + Ľavé tlačidlo – rotovanie okolo bodu v strede okna.

Hierarchia

V paneli Hierarchy sa nachádzajú všetky game objekty, ktoré máme v scéne. V scéne sa zobrazujú v 3D priestore. V hierarchii sa zobrazujú v zozname pod sebou. Každá vec, ktorú chceme, aby ju bolo vo výsledku vidno alebo aby niečo v hre robila, musí byť umiestnená v scéne/hierarchii. Zatiaľ tam máme iba objekty Main Camera a Directional Light.

Vytvorme teraz v scéne nový objekt. Buď cez hlavné menu:
GameObject > 3D Object > Plane alebo pravým klikom do hierarchie. Všimnite si aj, aké ostatné 3D objekty sa dajú vytvárať.

V scéne sa objavila štvorcová plocha a do hierarchie pribudol game objekt Plane.

Inšpektor a komponenty

V paneli s názvom Inspector sa nachádzajú vlastnosti game objektu, ktorý máme práve označený. Označme si kliknutím v hierarchii našu novú plochu zvanú Plane a pozrime, čo je v inšpektore.

V prvom riadku vidíme, že naša plocha má meno Plane. Toto môžeme rovno zmeniť, premenujme ju cez inšpektor na Stol.

  • Pomenovať si game objekty podľa seba je užitočný návyk. Pomáha to zorientovať sa v projekte.
  • Objekty možno ľahko premenovať aj v hierarchii pomocou klávesy F2.

V inšpektore sú pod sebou bloky s rôznymi vlastnosťami, tu napríklad Transform, Plane (Mesh Filter), Mesh Renderer atď. Tieto bloky sa nazývajú komponenty. Komponent pridáva game objektu rôzne schopnosti a vlastnosti. Pomocou komponentov budeme game objekty učiť nové veci a časom budeme vyrábať aj vlastné komponenty.

Komponent Transform definuje, kde v priestore sa game objekt nachádza (Position), ako je otočený (Rotation) a aký je veľký (Scale). Rôzne game objekty majú rôzne komponenty, ale Transform majú povinne všetky game objekty

Zmeňte teraz v komponente Transform vlastnosti game objektu Stol tak, aby bol umiestnený v strede scény (pozícia 0,0,0) a aby bol 2x širší a 2x dlhší.

Projekt a assety

Už vieme, že v projekte máme v scéne game objekty a že ich správanie a vlastnosti sú uložené v komponentoch. Poslednou súčasťou projektu sú dáta ako obrázky, 3D modely, textúry a materiály, zvuky, skripty… Pre tieto dáta máme jednotný názov assety a nájdeme ich v rámci panelu s názvom Project.

Panel s assetmi je v našom projekte zatiaľ takmer prázdny, obsahuje iba adresár s názvom Scenes:

Assety majú adresárovú štruktúru ako súbory na disku. Lebo to aj sú súbory na disku. Keď kliknete pravým tlačítkom myši do panelu s assetmi a vyberiete voľbu Show in explorer, otvorí sa adresár s projektom.

My teraz prefarbíme stôl na zeleno. Na to budeme potrebovať vytvoriť nový materiál. Najprv ale vytvorme v hlavnom adresári assetov podadresár pre materiály cez hlavné menu: Assets > Create > Folder.
Nový adresár pomenujme Materials a rovno do neho aj vlezme.
V adresári Materials vytvorme nový asset typu Material: Assets > Create > Material.
Nový materiál pomenujme StolMat. Takto by to malo vyzerať:

Označme si tento materiál a pozrime do inšpektora, kde sú jeho vlastnosti a zmeňme vlastnosť Albedo na zelenú.

Inšpektor neukazuje len vlastnosti game objektov ale aj vlastnosti assetov.

Aj keď sme už zmenili materiál na zelený, stôl v scéne zostáva biely. Prečo? Pretože zatiaľ náš zelený materiál existuje len medzi assetmi a nie je priradený žiadnemu game objektu v scéne. Kým je asset len v projekte, ale nie je nijako priradený do scény, tak nič vo výsledku nerobí.

Priraďme materiál StolMat game objektu Stol. Najjednoduchšie je to tak, že material myšou pretiahneme z assetov priamo na game objekt v scéne.

Import assetov

Aby náš stôl nebol fádne zelený, pridáme mu textúru. Začnime tým, že si stiahnete súbor s textúrou:

Tento súbor následne naimportujte do assetov, najlepšie do nášho adresára Materials. Je na to viac spôsobov. Použite ktorý chcete:

  • Pretiahnuť ho myšou do panelu s assetmi v Unity okne.
  • Skopírovať ho do adresára Assets/Materials v adresári projektu
  • Pravý klik do panelu s assetmi > Import new asset …
  • Hlavné menu > Assets > Import new asset …
  • Pri sťahovaní súboru ho uložiť priamo do adresára Assets/Materials v adresári projektu

Takto by to malo vyzerať po importe:

Keď si teraz označíme v assetoch materiál StolMat, môžeme do jeho vlastností v Inšpektore pretiahnuť textúru noise, do prázdneho štvorčeka v položke Albedo:

Náš stôl hneď vyzerá trochu inak:

Game objekty, komponenty, assety

Vyskúšali sme si základnú prácu s tromi zložkami Unity projektu.

Každý Unity projekt pozostáva z game objektov. Každú vec umiestnenú v scéne nazývame game objekt a môžu to byť viditeľné veci (postavičky, krajina, …) aj neviditeľné veci (zdroj zvuku, kamera, svetlo, … )

To, čo ktorý game objekt robí, je určené tým, aké komponenty má na sebe. Svetlo má napríklad komponent Light, ktorý definuje jeho svetelné vlastnosti. (Skúste si označiť svetlo v našej scéne a meňte mu Color.)

Dátové súčasti projektu, ako je napríklad textúra, materiál, zvuky alebo skripty sa v Unity nazývajú assety. Existujú nezávisle na game objektoch a kým ich na nejaký game objekt neumiestnime, tak nerobia nič.

Dokončite sami

  • Objavte, ako vytvoriť guľu v Unity. Vyrobte niekde nad stolom loptičku na minigolf.
  • Vyrobte zo 4 kvádrov obrubu na stôl a nastavte im materiál s drevenou textúrou.
    (Klonovať game objekty sa dá cez Edit > Duplicate alebo CTRL-D)
  • Po dokončení si uložte svoju scénu
    (File > Save, alebo CTRL-S)

Tu je na stiahnutie hotový projekt po dokončení tejto lekcie: MojaHra_01.zip