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í.

6. diel - Unity (C #) Android: GUI - Menu 2

V minulej lekcii, Unity (C #) Android: GUI - Menu 1 , sme sa zaoberali vytváraním GUI kódom.

V dnešnom Unity tutoriále si ukážeme ďalšie možnosti ako vytvoriť herný menu. Už sme menu vytvárali pomocou kódu s trochou programovania, tentoraz si ho v podstate len naklikáte.

Pre tieto účely si vytvoríme novú scénu, ktorú si pomenujeme Menu2, a otvoríme ju.

Canvas

Aby sme si mohli pridať do našej hry pár tých tlačidiel, najskôr musíme do scény pridať Canvas. To je v podstate plátno, do ktorého vkladáme naše prvky bez zložitejšieho programovania a alebo čohokoľvek iného. Je to vlastne taká plochá obrazovka, ktorú do hry vložíme a na ktoré môžeme niečo zobrazovať.

Pravým tlačidlom klikneme do priestoru, kde sa nachádza Main Camera, ďalej UI a zvolíme Canvas:

Tvorba 2D arkády pre Android v Unity

Spoločne s Canvas sa nám pridá aj EventSystem. Ten ponecháme tak, ako je, a zatiaľ si ho všímať nemusíme.

Nastavenie Canvas

Najskôr si ale náš Canvas musíme nastaviť:

Render Mode

Render Mode nám hovorí, ako chceme, aby sa naše okno vykresľovali.

  • Screen Space - Camera vykresľuje vždy na kameru. To znamená, že sa prvky "prichytí" ku kamere a hýbu sa rovnako ako sa hýbe kamera. To je vhodné napríklad na rôzne menu, ukazovatele zdravia a podobne.
  • World space sa využíva napríklad keď chceme, aby sme niekde vo svete mali texty, obrázky a tak, aby boli prichytené na kameru.
  • A vo finále tu máme Screen Space - Overlay. Tento mód funguje podobne ako Screen Space - Camera, ale namiesto "prichytenie sa" ku kamere jednoducho vykresľuje canvas na obrazovku, ako by pod ňou ani nebola žiadna hra. Od obrazu potom nejde nastaviť napr. Nejakú vzdialenosť alebo sklon, skrátka si kamery nevšíma.

My využijeme Screen Space - Camera. V Render Camera musíme určiť na akú kameru sa naše prvky prichytí.

Order in Layer

Ďalšia podstatná vec, ktorú môžeme využiť častejšie, je Order in Layer. Keďže môžeme mať Canvas prvkov teoreticky neobmedzene, tak nám toto číslo hovorí, ako sa majú cez seba zobrazovať. Čím menšie číslo, tým viac naspodku canvas bude.

UI Scale Mode

Ďalej, aby naša hra bola pekná na všetkých veľkostiach monitorov, musíme zariadiť, aby sa náš Canvas roztiahol ako potrebujeme. K tomu slúži UI Scale Mode, ktorý nastavíme na Scale With Screen Size. Tým sa Canvas roztiahne vždy na veľkosť monitora, na ktorom hra práve beží. To od menu tiež očakávame.

Referencie Resolution

Vo finále nastavíme Referencie Resolution na rozlíšenie nášho monitora. Tým len hovoríme, aká je referenčná veľkosť monitora. Pre naše účely teda postačí nastaviť naše rozlíšenie, aby sa nám pracovalo trochu pohodlnejšie:

Tvorba 2D arkády pre Android v Unity

Tlačidla

Keď už máme najdôležitejšie prvky nastavené, môžeme sa vrhnúť na pridanie tlačidiel:

Tvorba 2D arkády pre Android v Unity

Po kliknutí na Button sa nám zobrazí tlačidlo. Keď hru spustíme a klikneme, samozrejme zatiaľ nič nerobí.

Nastavenie tlačidla

Ak prejdeme do inšpektorovi nášho tlačidlá, môžeme si všimnúť pár nastavenia. Aby sme docielili rovnakého efektu ako v minulom menu, nastavíme si sprite Source Image na náš požadovaný sprite a následne si Transition nastavíme na Sprite Swap, ak už tak nie je nastavené. To nám zaručí, že sa budú meniť sprity pre rôzne akcie. Ďalej už stačí len zvoliť aký chceme Pressed Sprite.

Teraz, keď scénu spustíme a klikneme na naše tlačidlo, vidíme rovnaký grafický výsledok ako v minulom menu. Lenže stále sa nič nedeje.

Funkcie tlačidla

Ak sa pozrieme na samotný spodok Inspector tlačidlá, môžeme si všimnúť okienka s nadpisom On Click (). To je v podstate metóda, ktorá sa zavolá zakaždým, keď je na tlačidlo kliknuté. Ak klikneme na maličké "+" vpravo dole toho okienka, zobrazí sa nám možnosť nastaviť skript, ktorý sa má spustiť:

Tvorba 2D arkády pre Android v Unity

Pre tieto účely si vždy vytvoríme prázdne GameObjecty, ktoré pomenujeme podľa toho, aké skripty združujú a na tieto GameObjecty dávame skripty na tlačidlá.

Jeden takýto objekt si vytvoríme. Pomenujeme si ho ScriptObject:

Tvorba 2D arkády pre Android v Unity

Pripnite naň náš Reaction Script:

Tvorba 2D arkády pre Android v Unity

Zároveň, aby naše metódy v Reaction Script boli vidieť, musíme všetky prerobiť na public. Je to z toho dôvodu, že k našim metódam budeme pristupovať zvonku:

public void ClickedArcade()
{
    print("clicked Arcade");
}

public void ClickedSurvival()
{
    print("clicked Survival");
}

public void ClickedExit()
{
    print("clicked Exit");
}

Keď teraz prejdeme zas na tlačidlo, stačí náš ScriptObject vložiť do kolónky None (Object):

Tvorba 2D arkády pre Android v Unity

Ďalej klikneme na No Function a vyberieme si náš skript a požadovanej metódy:

Tvorba 2D arkády pre Android v Unity
Tvorba 2D arkády pre Android v Unity

Aby bolo všetko hotové, stačí už len zmeniť text tlačidla. To urobíme rozbalením nášho tlačidlá, kde uvidíme Text. Na ten klikneme a môžeme si nastaviť požadovaný text na našom tlačidle. Ak sa chceme vyblbnúť, môžeme si nastaviť ďalej i fonty, farby a podobne, nám ale postačí len text. Tlačidlo si pre prehľadnosť v scéne pomenujeme Arcade a tiež, aby nám názvy tlačidiel sedeli s minulým tutorialom. A máme hotovo.

Keď scénu spustíme, klikneme na tlačidlo môžeme vidieť, že sa nám do konzoly vypisuje požadovaný text zo skriptu. Takýmto spôsobom môžeme naprogramovať ľubovoľnej metódy s ľubovoľnou funkciou.

Proces zopakujeme pre zvyšné dve tlačidlá a výsledok máme úplne rovnaký:

Tvorba 2D arkády pre Android v Unity

Záver

Ešte neviem, aký spôsob vytvárania menu a GUI prvkov budem voliť do ďalších lekcií, ale je to v podstate jedno. Žiadny z ukázaných spôsobov nemá žiadne extra výhody ani nevýhody a niekto môže byť rád, keď si môže všetko vytvoriť sám kódom a mať všetko pod kontrolou. Týmto by som dnešné lekciu ukončil.


 

Predchádzajúci článok
Unity (C #) Android: GUI - Menu 1
Všetky články v sekcii
Tvorba 2D arkády pre Android v Unity
Preskočiť článok
(neodporúčame)
Unity (C #) Android: Generovanie Stalag
Článok pre vás napísal Jan Kubice
Avatar
Užívateľské hodnotenie:
1 hlasov
Aktivity