Besplatan online tečaj UNITY – Osnovni dijelovi razvojne okoline

Photo of author

By Nenad Crnko

Illustration by Diana Hlevnjak on PolarVectors

Prvi dio

Drugi dio besplatnog online UNITY tečaja za programiranje igara

Treći dio

Četvrti dio

Peti dio

Nakon instalacije alata na računalo te provjere može li se pokrenuti neki od demo projekata (sve to smo napravili u prvom nastavku serijala), sada imate na raspolaganju računalo spremno za korištenje alata Unity. U današnjem nastavku ćemo započeti s objašnjavanjem osnovnih dijelova korisničkog sučelja. Za to ćemo koristiti isti projekt kao i u prvom nastavku FPS Microgame. Ako navedeni projekt još uvijek nemate preuzet na vlastito računalo, to svakako napraviti za uspješno praćenje današnjeg teksta.

Za upoznavanje s radnom okolinom koristit ćemo demo projekt FPS Microgame.

Ali prije toga još nekoliko rečenica o …

… nadogradnji alata 

Budući da se Unity neprekidno razvija i stalno mu se dodaju nove mogućnosti (ili uklanjaju uočene pogreške), kontinuirano se objavljuju nove verzije alata. To vrijedi za početni modul za odabir projekta na kojem se trenutno radi (Unity Hub), ali i za glavni dio razvojnog alata – samu razvojnu okolinu. Oba alata vas odmah nakon vlastitog pokretanja obavještavaju o dostupnosti novih verzija, pa odmah možete napraviti preuzimanje i nadogradnju.

Primjer obavijesti o dostupnosti nove verzije alata.

Kako nema nikakvog posebnog razloga (pogotovo u periodu dok se tek upoznajete s alatom) da koristite njegove zastarjele verzije, svakako je dobro napraviti nadogradnju na zadnju verziju. Ako ni zbog čega drugoga, onda zato što su u njoj u pravilu ispravljene ranije uočene pogreške.

Nakon preuzimanja alata uvijek su dostupne i informacije o tome što je izmijenjeno u odnosu na prethodnu verziju.

Pregled novosti uključenih u zadnju preuzetu verziju alata.

Prve operacije u razvojnoj okolini

Pokrenite Unity i odmah početku izaberite učitavanje demo projekta FPS Microgame. Kao rezultat izvođenja prethodne operacije trebali bi dobiti stanje kao na sljedećoj slici.

Početni izgled razvojne okoline Unity nakon učitavanja demo projekta FPS Microgame.

U uvodnom tekstu smo od svih dostupnih mogućnosti razvojne okoline koristili samo gumbe za pokretanje i prekid izvođenja projekta učitanog u razvojnu okolinu (označene na prethodnoj slici crvenom bojom), te nekoliko naredbi izbornika File zaduženih za prevođenje projekta u izvršni oblik, odnosno za odabir platforme za prevođenje (Windows, Android i ostalo).

Krenimo u nastavku nekakvim logičkim redom u korištenju razvojne okoline. U kartici Tutorial na krajnjoj desnoj nalaze se trenutno dostupni kratki vodiči pomoću kojih možete sami svladati neke od osnovnih operacija. Ako ih trenutno ne namjeravate koristiti, onda je karticu bolje zatvoriti kako vam ne bi nepotrebno zauzimala vidljivi prostor u razvojnoj okolini. Sve trenutno dostupne operacije za pojedinu karticu nabrojane su u izborniku, koji se dobije nakon klika na oznaku s “tri vertikalne točke” na desnom rubu naslovne trake kartice. U ovom slučaju potrebna nam je naredba za zatvaranje kartice, a to je “Close Tab”. Kliknite na nju i zatvorite karticu.

Sadržaj pojedinih kartica u velikoj mjeri ovisi o kontekstu, to jest o tome što trenutno radite u razvojnoj okolini. Nakon ulaska u razvojnu okolinu većina kartica djeluje prilično prazno. To je posljedica činjenice da nakon početnog učitavanja demo projekta ni jedan njegov dio nije označen kao aktivan, pa zato u karticama nema prikaza “aktivnih podataka”.

Probajmo sada označiti dio projekta da provjerimo kakve će se promjene dogoditi  u razvojnoj okolini kao posljedica takve operacije. U kartici pod nazivom Hierarchy, na krajnjem lijevom dijelu razvojne okoline nalazi se hijerarhijski pregled svih dostupnih objekata u projektu. Ako u njemu ne vidite ništa drugo osim glavne scene (Main Scene), to znači da je cijeli prikaz trenutno skupljen na svoj korijen. Zato kliknite na korijen, kako bi dobili prikaz sastavnih dijelova projekta (GENERAL, PLAYER, …). U svakom od osnovnih dijelova (označenih s nekoliko znakova jednakosti na samom početku) nabrojeni su njegovi elementi.

Kao sljedeći korak, u dijelu PLAYER kliknite na istoimeni, ali malo drugačije napisani objekt Player. Kao rezultat izvođenja prethodne operacije doći će do popunjavanja kartice Inspector brojnim sadržajima. Razvojna okolina bi sad trebala imati otprilike isti izgled kao na sljedećoj slici (što djelomično ovisi o karakteristikama grafičkog prikaza vašeg računala i monitora).

Razvojna okolina nakon zatvaranja kartice s vodičima i odabira elementa Player.

U kartici Inspector prikazuju se vrijednosti različitih svojstava koje utječu na ponašanje igrača u igri. Budući da su vrijednosti većine svojstava relativno malene (u smislu broj znakova potrebnih za njihov prikaz – npr. 20, 19, 25 i druge slične vrijednosti), kartica je trenutno nepotrebno velika. To znači da je možete smanjivati po vodoravnoj osi tako dugo dok vidite sve što vam je potrebno. Takvom operacijom dobivate više prostora za prikaz drugih dijelova sučelja – prije svega prostora za prikaz scene. Možda bi bilo dobro da malo povećate po širini i ranije spomenutu karticu Hierarchy, kako bi za pojedine elemente mogli vidjeti njihove sastavne dijelove. Na primjer, ako kliknete na strelicu koja se nalazi lijevo od elementa Player otvaraju se njegovi sastavni dijelovi (Main Camera, Capsule).

Izgled razvojne okoline nakon prilagođavanja.

Na sličan način možete prilagoditi izgled drugih prozora i kartica razvojne okoline trenutnim potrebama. To je operacija na koju ste već navikli u drugim Windows programima.

Uvod u korištenje svojstava

U nastavku ćemo izmijeniti prvih nekoliko svojstava igrača u razvojnoj okolini. Prije nego što napravimo izmjene, objasnit ćemo ulogu svojstava u funkcioniranju modela, kako bi što jednostavnije mogli napraviti usporedbu ponašanja igrača prije i poslije izmjena.

Nakon što pokrene projekt s početnim vrijednostima svih svojstava, probajte napraviti nekoliko osnovnih operacija kao igrač. Tu mislimo na pokretanje igrača prema naprijed i prema nazad, njegovo rotiranje lijevo i desno, te mogućnost skoka. Probajte (bar otprilike) zapamtiti kakve mogućnosti ima igrač u početnoj verziji projekta.

Idemo sad našeg igrača u pogledu mogućnosti kretanja pretvoriti u svojevrsnog “supermena” u Unity svijetu. Za to je potrebno izmijeniti svega nekoliko vrijednosti svojstava. U nastavku su prvo navedene početne vrijednosti svojstava, a nakon toga vrijednosti koje treba upisati na odgovarajuća mjesta u kartici Inspector.

Početne vrijednosti:

Gravity Down Force:                 20

Max Speed on Ground:             13

Rotation Speed:                       200

Izmijenjene vrijednosti:

Gravity Down Force:                   1

Max Speed on Ground:             39

Rotation Speed:                       400

Što smo postigli s prethodnim izmjenama? Tri puta smo povećali brzinu kretanja igrača po tlu (s 13 na 39), dva puta brzinu okretanja igrača oko osi (s 200 na 400), a istovremeno smo djelovanje gravitacije smanjili 20 puta što se itekako osjeti kod svakog skoka.

Superskok” igrača nakon smanjivanja snage gravitacije.

Pokrenite sad ponovo izvođenje modela. Čak i ako niste baš precizno zapamtili mogućnosti igrača prije promjena, nema nikakve sumnje da je u odnosu na njegovo početno stanje sad riječ o pravom Supermenu. Kao takav će se mnogo lakše uhvatiti u koštac sa svim poteškoćama i neprijateljima u igri. Možda najdojmljivija od svih mogućnosti je mogućnost skoka igrača u uvjetima znatno smanjene gravitacije. Sad igrač može skočiti stvarno daleko u vis iznad čitavog modela, kako bi imao bolji pregled nad događanjima i lakše pobijedio.

U stvarnosti kad budete radili na pravoj igri teško da ćete potencijalnom igraču dati baš takve sposobnosti, osim možda u nekakvoj probnoj razini igre, kako bi ga “navukli” na igru. Ili nakon što kupiti nekakav poseban dodatak za igru koji mu daje takve super mogućnosti. Što vam  kao autoru daje mogućnost dodatne zarade na igri.

Primijetimo na ovom mjestu još jednu stvar u vezi s nadnaravnim mogućnostima igrača u pogledu skoka u visinu. Višestrukim smanjivanjem snage gravitacije ne samo što smo dali mogućnost igraču da praktično “poleti” uvis, nego je njezina smanjena snaga omogućila i sigurno vraćanje na tlo. Probajmo sad mogućnost superskoka definirati na nešto drugačiji način.

Stare vrijednosti:

Gravity Down Force:             1

Jump force:                             9

Nove vrijednosti:

Gravity Down Force:          20

Jump force:                          54

S ove dvije promjene vratili smo snagu gravitacije na početnu vrijednost, ali smo igraču dali šest puta veću snagu odskoka. Ako sad probate ponovo pokrenuti model, na prvi pogled se to svodi na isto. Igrač ponovo može napraviti “superskok” daleko iznad tla. No, je li baš sve ostalo isto?

Ozljeda igrača nakon superskoka izvedenog s drugačijim vrijednostima svojstava.

Do drastičnih promjena dolazi prilikom doskoka na tlo. U uvjetima smanjene gravitacije igrač se sporo vraća na tlo pa nema nikakvog problema kod doskoka. Međutim, u uvjetima normalne gravitacije uz drastično povećanje snage odskoka, kod povratka s velike visine znatno se ubrzava brzina dodira s tlom. Posljedica – igrač doživljava ozljede što se odmah idi na smanjenju pokazatelja njegovo zdravlja.

Ima li kakvog rješenja za problem ozljeda nastalih zbog neopreznog korištenja superskokova u situaciji normalne gravitacije? Ima  – i to nekoliko. Ovo je ujedno prilika da upoznamo još nekoliko dodatnih svojstava igrača koja se mogu iskoristiti u vlastitim projektima.

Dodatna svojstva za povećanje otpornosti igrača.

Ako svojstvu Max Health početnu vrijednost 100 izmijenimo na veći broj (na primjer 300), onda igrač općenito postaje puno otporniji, jer mu treba više „padova“ da bi stigao do 0 te tako završio igru. Ponovo mjesto gdje bi igraču u stvarnom svijetu mogli prodati neki dodatak za povećanje otpornosti u igri.

Drugi način za postizanje sličnog rezultata može se postići korištenjem svojstava pod zajedničkim nazivom „Fall Damage“. „Jačinu ozljede“ kod pada pri različitih brzinama možete smanjiti promjenom vrijednosti svojstava Fall Damage At Min Speed i Fall Damage At Max Speed. Na primjer, ako obje početne vrijednosti 30 i 10 postavite na 0, igrač se uopće neće ozljeđivati kod doskoka. Ili još jednostavnije, isključite opciju Recives Fall Damage nakon čega igrač više uopće ne može doživjeti ozljedu zbog pada.

Do slijedećeg nastavka možete samostalno isprobavati djelovanje opisanih (i ostalih dostupnih) svojstva u razvojnoj okolini, ali pri tome ne morate baš uvijek snimati novo stanje projekta. Na taj način se uvijek možete vratiti na ispravno stanje, ako tijekom testiranja slučajno upišete „čudne vrijednosti“.