Kezdők bevezetés a Unity-be (4. rész)

Az előző részekben megismerkedhettünk a környezettel, ahol a játékprogramozás zajlik, most viszont eljött az idő, hogy valóban elkészítsünk egy játékot. A gyakorlás céljából elkészítendő játék egy nagyon egyszerű, űrhajós-lövöldözős játék lesz. A játékkészítés során a következő dolgokat fogjuk elsajátítani:

  • Project ablak használata, asset-ek importálása és rendezgetése
  • Különbség a GameObject-ek és a Prefab-ok között
  • Unity fizika
  • Kamerák működése, a nézetek típusai
  • A Unity-ben lévő anyagok alapjai

A játék előre elkészített asset-ekből fog felépülni, de a későbbiekben a saját asset-ek készítésével és szkriptek írásával is megismerkedünk. Ha majd mindennel elkészültünk, akkor valami ilyesmi eredményt kapunk:

Game nézet

Kezdjünk neki

Töltsük le innen a sample-files fájlokat. Három mappát tartalmaz a példa: asset-ek, modellek és induló projekt. Az előző részekben megismert módon megnyithatjuk a projektet.

Megjegyzés: A Unity-ben a projektek megnyitása kicsit másabb, mint a többi programban. Kattinthatunk a scene fájlon, vagy kiválaszthatjuk a projekt mappáját is a Unity böngészőjében.

Open project

Open project

A fájlrendszerben keressük meg a game assets mappát, és válasszuk ki a benne lévő összes fájlt, vagy húzzuk őket az Assets mappába a Project ablakon belül:

Importálás

Megjegyzés: Ha esetleg nem látszódik a Project ablak, akkor válasszuk ki a Window\Layouts\2 by 3 opciót.

Ha a Unity végzett az importálással, akkor valami hasonló ablakot kell látnunk:

Asset mappa

A Unity alapértelmezetten nagy előnézeti képeket használ, de ezen változtathatunk az alul lévő csúszka segítségével . Ez jól jön, ha sok asset-tel kell dolgoznunk:

Asset ikon méretezés

Észrevehetjük, hogy az összes asset egy helyre van ömlesztve. A nagyobb projektek esetén elengedhetetlen, hogy jól szét legyenek válogatva a különböző elemek, mellyel nagyon sok időt megspórolhatunk a fejlesztés során. A lényeg az, hogy a játék tényleges fejlesztésére minél több idő maradjon, és ne keresgéléssel töltsük azt.

A Project ablakon belül a Create-re kattintva, és a Folder opciót kiválasztva új mappát hozhatunk létre.

Mappa létrehozása

Nevezzük el az új mappát Materials-nak:

Mappa átnevezése

Készítsük el még a következő mappákat is, amelyek az asset-einket fogják tárolni:

  • Models
  • Prefabs
  • Scripts
  • Sounds
  • Textures

A Unity-ben lévő mappák úgy működnek, mint a fájlrendszer mappái. A fájlrendszer követi a Unity-ben lévő rendszert, így a Unity-n kívül is ugyanazon a helyen fogunk megtalálni mindent. E működés miatt érdemes a Unity-ben, nem pedig fájlrendszerben rendezgetni .

Ideje rendezgetni! Válasszuk ki a Bullet, Debris, GameManager, IonCannon, RendererFade, ScreenWrap és a ShipController szkripteket és húzzuk őket a Script mappába.

A background-music, explosion és shoot hangokat húzzuk a Sound mappába.

Végezetül a flint_like_rock_4787 textúrát mozgassuk a Textures mappába. Ha mindezzel megvagyunk, akkor a Project ablakunk hasonlóképpen néz ki:

Asset rendezés

Még mielőtt nekiesnénk a munkának, fontos megszokni, hogy rendszeresen mentsünk, mivel a Unity nem tartalmaz automata mentési funkciót.

A Unity a munkákat scene-ekbe menti. A scene lehet egy szintje a játéknak, de akár az egész játék is lehet egy scene. Ebben a lövöldözős játékban az utóbbi fog megvalósulni: minden egy scene lesz.

Mentsük el a játékunkat. Nevezzük el a scene-t Main-nek. A Save Scene ablak így néz ki:

Scene mentése

GameObject-ekkel és Prefab-okkal való munka Unity-ben

Mit ér a játékprogramozás játékos nélkül? Nézzünk bele a models/player mappába. Itt FBX fájlokat fogunk találni néhány képpel egyetemben.

Az FBX fájl tartalmaz minden adatot, ami a 3D-s modell elkészítéséhez kell. Ilyen például az animáció. A játékos fájlt, melyet a leírásban használunk, ComboMash készítette a Hextraction játékához.

Válasszunk ki minden fájlt a player mappából, és húzzuk őket az Assets mappa tetejére, a Project ablakba. Ezután valami ilyesmit kell lássunk:

NormalMap settings

Néhány képformátum extra információt hordoz, habár szokványos formátumúak. A p_pod_normal.jpg például tartalmazza a felület mélységét, amely felszíni világításhoz nyújt információt anélkül, hogy bármilyen más geometriát kelljen ehhez létrehozni. Ezt normal map-nak nevezzük.

A Unity azonban azt hiheti, hogy normál képpel dolgozik. A Fix Now gombra kattintva beállíthatjuk, hogy a Unity ezt normal map fájlként kezelje.

Miután importáltuk a játékos fájlokat, húzzuk a hextraction_pod asset-et a Scene nézetbe az alábbi módon:

Ship hozzáadása a Scene-hez

El is készült a modell első példánya. A Unity helyesen importálta a textúrát és helyezte rá a modellre.

A Hierarchy nézetben pedig megjelent egy új GameObject:

Ship Hiererchy

Ahogyan az előző részekben olvasható volt, a Hierarchy nézetben minden elem egy adott típusú GameObject. A GameObject maga tartalmaz egy transform adatot, amely a pozíciót, méretet, forgási adatot foglalja magába:

Transform

A GameObject-et úgy tudjuk testreszabni, hogy Components-et adunk hozzá. A komponensek képviselik a GameObject viselkedését és megjelenítését.

A világítási komponens hozzáadásával például -nem meglepően- fénybe boríthatjuk a GameObject-et. Az Audio Source komponens segítségével a GameObject hangot bocsájthat ki. Saját komponenseket is írhatunk és adhatunk a GameObject-ekhez, ha nagyon egyedi dolgot szeretnénk.

A GameObject-ek tárolóként is funkcionálnak. Az Alt nyomva tartásával, a kis háromszögre kattintva a hextraction_pod-on kinyitjuk az objektumot:

Hierarchy fa

Legtöbbjük üres GameObject, amely a modell struktúráját képviseli. A Unity készíti el ezeket a GameObject-eket, amikor egy modellt importálunk. A többi GameObject, mint például a pod_mesh gyerekei, tartalmaz egy Skinned Mesh Renderers komponenst, amely egy geometriát jelenít meg a képernyőn.

Azt is észrevehetjük, hogy némely GameObject a Hierarchy nézetben feketén, némely pedig kéken van jelölve:

Ship Hiererchy

A fekete jelölés a normál GameObject-et jelöli, míg a kék azt mutatja, hogy a GameObject egy Prefab-bal a többi objektumhoz kapcsolódik. Amennyiben a GameObject barna színűre vált, az azt jelenti, hogy elvesztette a Prefabbal való kapcsolatot.

A Prefab lehetővé teszi, hogy úgy mentsük le a GameObject-eket, hogy azok  kódból vagy a Scene nézetbe való behúzással könnyen duplikálhatóak legyenek. Hasonlóak a sablonokhoz, azzal a különbséggel, hogy a Prefab-ok kapcsolódnak egymáshoz. Ha módosítjuka Prefab-ot, akkor minden példány módosul.

Ha van egy Prefab példányunk a Scene nézetben, akkor bárhogyan testreszabhatjuk. Lesz olyan, amikor a módosításokat a már létező Prefab-okon akarjuk elvégezni, és lesz olyan is, amikor mindent vissza akarunk állítani az eredeti állapotára, mert nem jöttek be a változtatások.

Válasszuk ki a hextraction_pod-ot a Hierarchy nézetben. Az Inspector ablakban három gombot láthatunk: Select-et, Revert-et és Open-t:

Prefab vezérlők

A Select lokalizálja a Prefab-ot a Project ablakon belül. Ez különösen hasznos, ha az elemet egy komplex mappastruktúrában nem a megfelelő helyre tettük le.

Ha változtatunk egy Prefab-on, akkor az Apply gombbal azonnal módosíthatjuk az összes példányt. A Revert gomb visszavonja az egy példányon eszközölt változtatásokat, visszaállítja az eredeti állapotot. Az Open pedig megnyit egy modell fájlt, amit valamilyen szerkesztőben készítettek (például Maya vagy Blender).

Jelenleg a játékos hajója alatt egy rácsozat van, ami furán néz ki. Válasszuk ki tile_reference GameObject-et a Hierarchy nézetből. Ez a közvetlen leszármazottja a hextraction_pod GameObject-nek.

Megjegyzés: A gyorskeresőbe beírva a GameObject nevét, villámgyorsan megtalálhatjuk az objektumunkat.

Prefab keresés

A tile_reference-et kiválasztva töröljük a rácsozatot. A Unity egy figyelmeztetést fog feldobni:

Unity figyelmeztetés

A Unity minden olyan esetben jelezni fog, amikor egy változtatás megtöri a Prefab-ok kapcsolatát. Mivel pontosan ezt akarjuk tenni, ezért kattintsunk arra, hogy Continue. A hextraction_pod feketére fog váltani, jelezve, hogy az elemből egy hagyományos GameObject lett:

Prefab

A hextraction_pod-on történő jobb kattintás után válasszuk ki a Rename opciót, és nevezzük át a GameObject-et Spaceship-re.

Húzzuk a Spaceship-et a Prefab mappába a Project ablakon belül:

Prefab létrehozása

Behúzva a GameObject-et a Project ablakba, az automatikusan átkonvertálódik Prefab-bá. Annyi űrhajót tehetünk így a játékba, amennyit csak szeretnénk, úgy, hogy csak behúzzuk őket a Scene nézetbe. Jelenleg ez csak lemásolja a modellt, de a későbbiekben tartalmaz majd szkripteket, hangokat és még sok mást is. Amint azt láthajtjuk, a Prefab-ok nagyon hasznosak:

Prefab duplikálás

Már csak egy kis időt kell szánnunk arra, hogy a Project ablak átlátható maradjon. Az Assets mappán való kattintással megjeleníthetjük annak tartalmát. Tegyük a hextraction_pod-ot a Models mappába, a p_pod_ fájlokat pedig a Textures mappába. Végezetül ne felejtsünk el menteni!

A továbbiakról

A játékprogramozás bemutatását szolgáló sorozat következő részében egy másik izgalmas elemmel, a kamera beállításával fogunk megismerkedni. Hiszen mit ér egy játék, ha nem látunk belőle semmit?

Skeldar

Kezdők bevezetése a Unity-be (3. rész)

Az előző részben megismerkedhettünk a játékkészítés egyik legfontosabb elemével. Megtudtuk, hogyan helyezhetünk el és konfigurálhatunk objektumokat a játéktérben. A mostani részben pedig megtudhatjuk, hogyan próbálhatjuk ki az alkotásunkat, valamint bónuszként górcső alá vesszük a szerkesztő további extra funkcióit is.

7. Játékgombok

A játékgombok teszik lehetővé, hogy elindítsuk és leállítsuk a játékunkat. Az első gomb a Play:

Play gomb

Több dolog is történik, ha rákattintunk a Play-re. Először is elindul a játékunk, várakozásunknak megfelelően. A vezérlőgombok azonban kékre váltanak, ha a játékunk fut:

Játékvezérlők

Az egész játéktervezői tér is fakóbb lesz:

Unity szerkesztő

Fontos megjegyezni, hogy minden, a játék futása közben eszközölt változtatás elveszik a játék leálltával. Gyakori hiba, hogy a Unity-ben fejlesztők sok módosítást végeznek el futásidőben, majd egyszer csak azt veszik észre, hogy minden elveszett. A tervezői terület fakóbbá válása egy jó jelzés lehet, de sajnos nem túl nagy a színeltérés, így néha el lehet felejtkezni arról, hogy futásidőben vagyunk.

Szerencsére a Unity ad lehetőséget arra, hogy állítsunk az árnyalatokon:

Nyissuk meg a Unity Preferences ablakát.
Válasszuk ki a Colors fület a bal oldalon, és állítsuk be a kívánt színt:

Unity Colors

Playmode-ba való lépésnél így már elég feltűnő lesz a különbség:

Játékmód színek

A következő a Pause gomb:

Pause gomb

Ez a gomb szünetelteti a játék futását, és lehetőséget ad arra, hogy módosításokat végezzünk el. Ezek a módosítások azonban a játék leállításakor ugyancsak elvesznek. Az ilyen ideiglenes módosítások azért hasznosak, mert a játékkészítés sok kísérletezéssel jár, és itt nyugodtan próbálkozhatunk. Bármit módosítunk, a játékunk vissza fog állni alapállapotra.

A harmadik hasznos gomb a Step:

Step gomb

A Step gombbal képkockánként léptethetjük a játékot. Nagyon hasznos, amikor az animációkat a lehető legalaposabban meg akarjuk vizsgálni, vagy ha egy adott GameObject állapotát akarjuk ellenőrizni a játék folyamán:

Léptetés

8. Egyéb szerkesztői beállítások

A játékkészítés folyamata gyakran több fejlesztő munkájának összehangolását is szükségessé teszi. Az első a Collab menü, amely ezt hivatott segíteni:

Collab menü

A Unity új szolgáltatása lehetővé teszi, hogy nagy csapatok dolgozzanak egy projektben.

A következő gomb a Service, amellyel különféle szolgáltatásokat adhatunk a Unity játékunkhoz. Az opció használatához Unity Project ID szükséges:

Unity Services

A Project ID hozzáadása után különböző szolgáltatásokkal bővíthetjük a programunkat. Például felhő build-et adhatunk a projekthez, amely automatikusan build-eli a projektet, így nem kell minden egyes build-re várni. Hozzáadhatjuk még az Analytics, In-Game Ads, Multiplayer támogatást, illetve az In-App Purchasing, Performance Reporting és Collaborate opciókat is.

Csapattagokat is felvehetünk, emellett korhatárt és más fontos dolgokat állíthatunk be.

A következő az Account gomb, amellyel a Unity profilunkat kezelhetjük. Átnézhetjük a beállításainkat, ki-és beléphetünk vagy upgrade-elhetünk:

Account menü

A negyedik gomb a hasznos Layers:

Layers menü

A Layers segítségével a szerkesztői nézethez különböző kiosztásokat készíthetünk, menthetünk és tölthetünk be. A Unity nagyon jól testreszabható, minden dokkolható, átméretezhető, elrejthető:

Ezen funkció segítségével egy adott munkafolyamathoz legjobban illeszkedő nézetet készíthetjük el. Például az animációkkal való munkához nem kell feltétlenül megnyitva lennie a Game nézetnek, de az Animator és Animations nézeteket biztosan szeretnénk látni.

Újrarendezni a szerkesztőt időrabló, de a Layout-tal szerencsére gyorsan válthatunk.  Egy új ablak megnyitása és beállítása nagyon könnyű:

Layout menü

Észre fogjuk venni, hogy a fejlesztés során számos nézetre lesz szükségünk. Ez a sorozat igyekezett a legfontosabbakat bemutatni, viszont ezeken kívül sok másik létezik még. A részletes leíráshoz érdemes a Unity dokumentációhoz fordulni.

Hogyan tovább?

A játékkészítés legizgalmasabb része következik: a játékkészítés maga! A következő részben az elméletet átültetjük a gyakorlatba, és egy kicsi, űrhajós-lövöldözős játékot fogunk megalkotni. A megtanult technikáknak nagy hasznát fogjuk venni. Ha jól megismertük a fejlesztői környezetünket, akkor nagyon gördülékeny lesz a játékkészítés.

Skeldar

Kezdők bevezetése a Unity-be (2. rész)

A Unity-s játékfejlesztés folyamatát bemutató cikksorozat első részében a telepítésről, az asset-ekről, a GameObject-ekről és magáról a felületről általánosan olvashattunk. A játékfejlesztői munka jelentős része azonban az asset-ek importálása és a GameObject-ek behúzása után történik, ezért érdemes ezen ablakok kezelését a lehető legalaposabban elsajátítani.

5. Inspector ablak

Inspector ablak

Az Inspector ablakban konfigurálhatjuk a GameObject-eket. Ha kiválasztunk egyet a Hierarchy nézetben, az Inspector minden tulajdonságot kilistáz, ami az adott objektumra vonatkozik . Ez az objektum adatlapja. A játékfejlesztés során itt állítjuk be az indulási adatokat, de az adatlapon szereplő értékeket játék közben is módosíthatjuk, így például az is megvalósítható, hogy menet közben egy-egy objektum más színnel kezdjen el világítani.

6. Eszköztár

A játékfejlesztés elengedhetetlen kelléke az eszköztár, amely segítségével módosíthatjuk a GameObject-eket a scene-ben. Nagyon sokat fogjuk ezt használni, hiszen az üres scene-t fel kell tölteni, és az elemeket el kell rendezni. Gyakorláshoz helyezzünk el egy kockát:

GameObject menü

  • Nyissuk le a GameObject menüt
  • Válasszuk ki a 3D Object opciót
  • Válasszuk ki a Cube objektumot

Megjegyzés: Ha elveszítjük a kockát a manőverezés közben, akkor a Hierarchy nézetben a Cube objektumon duplán kattintva visszavihetjük a scene néztet a kockára.

A Hand nevű eszköz egy kéz, amellyel megfoghatjuk és mozgathatjuk az objektumokat:

Unity eszköztár

Unity eszköztár

Jobb egérgombbal a kéz ikon egy szemmé alakul, és ilyenkor magát a kamera nézőpontját változtathatjuk:

Unity eszköztár

 

A Ctrl (vagy Cmd) vagy Alt (vagy Option) és a jobb egérgomb lenyomásával, majd az egér mozgatásával a nagyítást állíthatjuk be. Az egér felfelé mozgatásával közelíthetünk a scene-ben, míg a lefelé való mozgással távolodhatunk. Egyszerűbb, ha az egér görgőjét használjuk.

Unity eszköztár

Tartsuk lenyomva a jobb egérgombot, így a WASD gombokkal is mozoghatunk a scene-ben, mintha csak egy FPS játékban lennénk. Fölfelé és lefelé is mozoghatunk az E és Q gombok segítségével. Számos FPS játékhoz hasonlóan, a Unity Scene nézetében is  gyorsabban mozoghatunk, ha a Shift-et nyomva tartjuk:

Unity eszköztár

A Hand alapértelmezett gyorsbillentyűje a Q. A kéz eszközhöz való gyors ugráshoz nyomjuk meg a középső egérgombot, melyet elengedve visszatérünk az ezt megelőzően használt eszközhöz.

A Translate eszközzel kiválaszthatjuk és pozícionálhatjuk a GameObject-et a scene-ben.

Unity eszköztár

Ha a Translate aktív, és kiválasztunk egy GameObject-et, akkor három nyíl jelenik meg az objektum közepéből kiindulva. A három nyíl a 3D-s tér három tengelyét jelenti. A piros az X, a zöld az Y és a kék a Z tengely.

Unity eszköztár

A Unity koordinátarendszere balkezes. A bal-és jobbkezes koordinátarendszer közötti különbség alapvetően a Z tengely iránya. A két rendszert az alábbi példa szemlélteti:

Koordináta-rendszerek

Megjegyzés: A három különböző színű nyilat a Unity nyelvezetében gizmónak nevezik. A gizmó egy 3D geometria vagy textúra, amely információt szolgáltat a GameObject-ről. Ebben az esetben a gizmó a három tengely irányát mutatja. Miután egyre jobban elmélyedünk a Unity-ben, akár saját gizmókat is készíthetünk, amelyek például mutathatják a starthelyet, a kamera helyét, a szélirányt stb. A gizmók egyik remek tulajdonsága még, hogy csak a Scene nézetben láthatóak, és kikapcsolhatóak, ha már nincs rájuk szükség.

Sok lehetőségünk van arra, hogy a Translate eszközzel mozgassuk a GameObject-eket. Kiválaszthatunk egy nyilat, és az egeret mozgatva csak az adott tengelyen toljuk el az objektumot. Például, ha a GameObject Y tengelyét választjuk ki, és a scene-t normál szögből nézzük, akkor az egérrel fel és le tudjuk mozgatni az elemet.

GameObject tengelyek

A három különböző színű lap a GameObject közepén arra hivatott, hogy az objektumot egy adott síkban tudjuk mozgatni. Ha például a zöld lapot fogjuk meg, akkor az X és Y tengelyek mentén tudjuk helyezgetni a GameObject-et:

Unity eszköztár

A Translate eszköz alapértelmezett gyorsbillentyűje a W.

A Rotate eszköz -nem meglepően- az objektumot forgatását teszi lehetővé:

Unity eszköztár

Ha kiválasztjuk ezt az eszközt, három körvonalat fedezhetünk fel, melyek mentén az adott elem forgatható:

GameObject forgatási tengely

Egyszerűen csak válasszunk ki egy vonalat, és kezdjük el mozgatni az egeret, hogy a GameObject is elforduljon. A tengelyhez való kötöttség nélküli forgatáshoz a vonalak közötti üres teret válasszuk ki:

Unity eszköztár

A Rotate eszköz alapértelmezett gyorsbillentyűje az E.

A Scale eszközzel a GameObject-et méretezhetjük át egy, vagy az összes tengely mentén.

Unity eszköztár

Egy tengelyen való átméretezéshez fogjuk meg a tengely végén lévő színes kockát. Az összes tengelyen való méretezéshez a GameObject közepén lévő kis kockát kell megragadjuk:

GameObject tengelyek

A Scale eszköz alapértelmezett gyorsbillentyűje az R.

Megjegyzés: Elsőre kaotikus lehet a gyorsbillentyűk kiosztása. Jobb lenne, ha a Scale S lenne R helyett. Valójában a látszólagos káoszban van rendszer: a billentyűzeten az eszköztár sorrendjében következnek egymás után a gombok, amit az alábbi ábra jól szemléltet:

Unity eszköztár

A Unity feltételezi, hogy az egeret a jobb kezünkkel fogjuk, míg a ballal a billentyűzetet kezeljük, az ujjainkat pedig általában a WASD környékén tartjuk a játékfejlesztés során:

Unity gyorsbillentyűk

Ebből a pozícióból a QWERT gombokat könnyedén elérjük. Sajnos néha előfordulhat, hogy W helyett a 2-est nyomjuk meg. Ilyenkor a szerkesztő 2D-s módba vált át:

Unity eszköztár

Ha ez megtörténik, csak nyomjuk meg újra a 2-est, és visszaáll az előző mód.

A Rect eszközre általában csak 2D-s GameObject-ek és User Interface-ek (UI) esetén van szükség, habár 3D-s objektumoknál is látni lehet.

Unity eszköztár

Ezzel az eszközzel lehetőségünk van átméretezni, igazítani, forgatni a 2D-s asset-eket, de a forgatási pontot is módosíthatjuk vele. A forgatási pontot egy nagy köz jelzi az asset körül:

Unity eszköztár

Az eszköz alapértelmezett gyorsbillentyűje a T.

A gizmó megjelenítés kis zavart okozhat. Ezek nem csupán gombok. Inkább kapcsolók, amelyek a gizmók pozícionálást hivatottak vezérelni.

Az első ilyen kapcsoló a Center és Pivot mód közötti váltást szolgálja. Center módban két GameObject-et választhatunk ki, így a gizmó a két objektum közé kerül. A GameObject-eket ebben a módban a közbenső pont körül forgathatjuk. Pivot módban minden GameObject a saját, belső forgatási pontja körül fordul el:

Unity gizmó

A második kapcsoló a Global és Local mód között vált. Global módban az objektumot az azt körülvevő világ szemszögéből módosítjuk. Az X tengely megy balra-jobbra, az Y megy fel és le, míg a Z tengely előre és hátra. A Local mód az objektum belső koordináta-rendszerét veszi alapnak, a tengelyek e szerint módosulnak.Global-Local

A játékfejlesztés eszközeinek fontossága

A játékfejlesztés ezen eszközeinek alapos begyakorlása kiemelten fontos. Nagyon sokat fogjuk használni őket, érdemes készségszinten elsajátítani a használatukat. A cikksorozat következő részében a másik igen fontos és gyakran használt elemmel, a Play gombbal és társaival ismerkedünk meg. Levezetésképpen pedig betekintünk az interfész testreszabásába és a Unity kollaborációs lehetőségeibe. Az előbbi igen fontos az egyéni munkánk elősegítése miatt, az utóbbit pedig jó ha alapszinten megismerjük, hiszen az igazán nagy játékok szinte mindig csapatmunkából születnek!

Skeldar

Kezdők bevezetése a Unity-be (1. rész)

A játékfejlesztők többségéről elmondható, hogy akkor kaptak kedvet saját játékok készítéséhez, amikor maguk is kapcsolatba kerültek különböző videojátékokkal. A hordozható telefonok  terjedésének köszönhetően egyre többen adták mobilra történő játékfejlesztésre a fejüket, melynek pozitív hozadékaként ma már számtalan szórakoztató mobilapplikáció közül válogathatunk. A Unity szintet lép, és még könnyebbé teszi a fejlesztők életét. Ez a bevezetés egy összefoglaló arról, miért, és hogyan érdemes belevágni a játékfejlesztésbe.

A mobil és számítógépes platformra való fejlesztés kezdetben nehézkes volt, ami sokakat már az első lépéseknél elriasztott. Szerencsére manapság már léteznek vizuális szerkesztőprogramok, az egyik ilyen élvonalbeli eszköz a Unity, mellyel számítógépre és mobilra is készíthetünk játékot. Egy játék sem lehet teljes grafikai elemek nélkül: a Unity-hez léteznek kész grafikák, animációk, effektek és más elemek, melyeket “assets”-nek nevezünk. Az Asset Store-ban rengeteg lehetőség közül válogathatunk, számos kiváló ingyenes és fizetős Asset Package-t találhatunk, amelyek egy adott téma köré épülnek (pl.: platformjátékhoz szükséges elemek), így egyből nekikezdhetünk a fejlesztésnek. Csaknem 30 platform támogatásának köszönhetően -ideértve a mobilokat, VR-t, asztali gépeket, konzolokat- az eszközök széles skáláját érhetjük el játékainkkal.

 

Unity-LEGO hasonlat

A Unity egy fantasztikus moduláris megközelítést használ, amikor a scene-ek, karakterek megalkotásáról van szó. Még kezdők is képesek remek űrhajót építeni az alap LEGO kockákkal, ez a Unity-ben sincs másképp. A kifinomultabb alkotáshoz lehetőségünk van teljesen testreszabni majdnem minden komponenst. Írhatunk saját shadert, vagy készíthetünk egészen új hálózati modult is a játékunkhoz.

A leírás  teljesen kezdők számára készült, hogy minél könnyebben átlássák a Unity környezetet és eszközöket. A későbbiekben részletesebben is szemügyre vesszük a különböző alrendszereket.

Az alábbiakkal fogunk megismerkedni:

  • Unity telepítése, és a verziók közötti különbségek tisztázása
  • Interfész különböző nézetei
  • Navigáció a Scene nézetben
  • GameObjects és Components hozzáadása és manipulálása

A későbbiekben pedig egy kicsi, űrbéli lövöldözős játékot fogunk készíteni, hogy a gyakorlatban is megismerjük a Unity adta eszközöket.

A kezdet

Első lépésként le kell töltenünk innen a Unity-t. De várjunk csak! Három különböző verzió is létezik. Melyikre van szükség?

A Unity motor minden verzióban ugyanazon funkciókkal van felszerelve. A Personal ingyenes, a Plus $25, míg a Pro $125 havonta. A legszembetűnőbb különbség a Unity indulókép, amelyet csak fizetős verziókkal távolíthatunk el vagy cserélhetünk sajátra. Számos kisebb-nagyobb eltérés van még, ezeket itt részletesen megtaláljuk.

Az oktatóanyagokhoz elegendő a Personal változat , de mielőtt elkezdenénk fejleszteni a következő, játékpiacot letaroló programunkat, olvassuk el a részletes tájékoztatót, mivel a Personal verzió rendelkezik pár megkötéssel.

Maga a telepítés nagyon egyszerű, ‘Next’-‘Next’-‘Finish’ után a következő kép fogad minket:

Unity regisztráció

A regisztráció után nem szükséges mindig bejelentkeznünk, offline mód használatra is van lehetőségünk.

A bejelentkezés után a következő kép fogad minket:

Unity új projkt

Kattintsunk a New Project gombon, amely egy párbeszédablakot hoz elő:

Unity projekt beállítások

  • Nevezzük el a projektet Space Debris-nek, és válasszunk egy helyet ahova el akarjuk menteni.
  • A 2D/3D opció meghatározza a kezdeti konfigurációt. Itt még az analitikát is bekapcsolhatjuk, amennyiben szeretnénk. Ezeket a beállításokat később is megváltoztathatjuk.
  • Az Assets packages gombbal egyedi csomagokat importálhatunk a projektbe. Például, ha FPS játékot szeretnénk készíteni, akkor érdemes a Unity first-person controller csomagját importálni. Ez egy kényelmes funckió a projekt elindításához, de a későbbiekben is bármikor importálhatunk csomagokat. A leíráshoz nincs szükség semmilyen alap asset-re.
  • Unity Analitics-et nem szükséges bekapcsolni.
  • Kattintsunk a Create project-re, és a Unity megnyitja az első projektünket.

Bevezetés az interfész felépítésébe

A Unity indulása után valami hasonló kép jelenik meg:

Unity interfész bevezetés

A felület előszőr nagyon összetettnek tűnhet (és verziótól függően kis mértékben eltérhet), de valójában teljes mértékben testreszabható annak érdekében, hogy csak azt lássuk, ami tényleg szükséges. Annyi információt jeleníthetünk meg, amennyit szeretnénk.

 

Nézetbeállítás

jobb felső sarokban öt gombot láthatunk. Válasszuk ki a ‘2 by 3’ opciót. A szerkesztő ennek hatására hasonló módon alakul át:

Unity interfész

 

1. Scene nézet

A bevezetés az interfész felépítésébe a Scene nézettel indul, amelyben a játék elemeit készítjük el, ide helyezzük el a modelleket, kamerákat és a többi elemet. Mindent vizuálisan kezelhetünk ebben a nézetben, ez maga a ‘színpad’.

Scene nézet

Tesztelés során a scene a játék állapotától függően módosul, menet közben akár újabb elemeket is hozzáadhatunk. Ha megállítjuk a játékot, a scene visszatér az alapállapotába: minden, játék során végzett módosítás elveszik.

2. Game nézet

A Game nézet a játékos szemszögét mutatja. Ez az a nézet, ahonnan játszani lehet a játékot, itt láthatjuk, mi hogyan működik:

Game nézet

Ez a nézet rendelkezik egy képarányt beállító menüvel. Különböző képernyőtípusokon is ellenőrizhetjük, mit is fog látni a játékos. Ez az opció azért is fontos, mert egy táblagépen vagy telefonon egész más látványt kapunk, mint számítógépen, ezért ehhez a nézethez is hozzá kell igazítani a játékot (feltéve, ha mobil változat is készül belőle).

 

Képarány

3. Hierarchy nézet

Hierarchy ablak tartalmazza a játékunk által használt összes GameObject-et. De mi az a GameObject? A GameObject egy objektum a játékban. Tulajdonképpen olyan üres konténerek összessége, melyekbe komponenseket tehetünk és testreszabhatunk.A komponensek lehetővé teszik, hogy a GameObject alakot vegyen fel, legyen az egy egyszerű kocka vagy egy komplex szörny modellje. A GameObject fényforrás és kamera is lehet, de a szkriptek segítségével bonyolult viselkedést is megadhatunk neki.

A GameObject-ek mappaként is funkcionálnak, további GameObject-eket tartalmazhatnak, így könnyebben rendszerezhetjük őket. A későbbiekben működés közben is láthatjuk majd őket.

scene egy adott szintjét jelenti a játéknak, habár elméletileg az egész játék elhelyezhető egy scene-ben. Minden, a scene-ben aktívan használt GameObject a Hierarchy nézetben jelenik meg:

Hierarchy ablak

Minden új scene egy Main Camera-val és egy Directional Light-tal kezdődik, amelyek ugyancsak GameObject-ek. Ha a Hierarchy-ból törlünk egyet, akkor azt tulajdonképpen a scene-ből töröljük. Ez a nézet az objektumok számának növekedésével egyre hasznosabbá válik majd.

4. Project ablak

A Project ablak tartalmazza a játékunk által használt összes asset-et. Itt kedvünk szerint csoportosíthatjuk őket. A drag and drop módszer a Hierarchy nézethez hasonlóan itt is műdödik, közvetlenül a scene-be is behúzhatunk elemeket. Ha a számítógépről behúzunk valamit a Project ablakba, a Unity automatikusan importálja azokat az asset-eket is. Ez igazán kényelmes tud lenni.

 

Project ablak

A Unity úgyanúgy rendezi el az asset-eket, ahogy azok a fájlrendszerben találhatóak. Az asset-eket soha ne módosítsuk közvetlenül a fájlrendszer szintjén, hiszen úgy a projekt számára is elérhetetlenné válhatnak, ami tönkreteheti a játékot. A Unity tárolja a metaadatokat az asset-ekről, így a könyvtárak közötti mozgatás ezeket az adatokat érvényteleníti. Ha az asset-eket akarjuk rendszerezni, legjobb ezt a Project ablakon belül megtenni.

A folytatásról

A cikksorozat további részeiben a Unity kiemelten fontos nézeteivel és ablakival fogunk foglalkozni. A nézetekről és használatukról egy alapos leírás lesz elérhető, hiszen hatékony kezelésük döntően meggyorsítja a fejlesztést.

Skeldar