A Unity Editor felülete
Kezdetben nézzük át, hogyan épül fel a Unity Editor felhasználói felülete.
Egy friss projekt létrehozása után 7 alablakkal találkozunk:
- Hierarchy (Bal oldalt),
- Scene, Game, Asset Store (Középen)
- Inspector (Jobb oldalt)
- Console és Project (Alul)
Némely esetben az ablakok közt fülek (tab-ok) segítségével tudunk váltani. (Pl.: Console és Project) Az ablakok átméretezhetők és elrendezésük módosítható.
A Unity a felsoroltakon kívül rengeteg egyéb alablakkal rendelkezik különböző feladatokra, sőt a jövőben akár mi is tudunk sajátot programozni. Az eléhető ablakokhoz a Felső menüsáv Window fülén férhetsz hozzá. Egyelőre azonban elég áttekinteni a fentieket.
Projekt ablak
Itt találjuk a projektünk fájljait, amikből a játék felépül. Ezen fájlok közé tartoznak 2D képek és 3D modellek, az objektumok felületét leíró Material file-ok, audio fájlok, hangok és zenék, animációs fájlok és még sok más.
Két mappát látunk a projektünk gyökerében. Egyik a Packages, amik külső fejlesztésű hozzáadott csomagok fájljait tartalmazza. Ezt később tárgyaljuk majd. Másik az Assets nevet viseli, ehhez az amiben fejlesztés alatt gyűjtjük a saját hozzáadott fájljainkat.
Az Assets-en belül frissen létrehozott projektben egy almappa található egy fájllal, a SampleScene.unity nevű Scene-nel.
A Scene tartalmazza az világot benépesítő objektumokat és azok minden tulajdonságát.
Hierarchy ablak
Mindig egy vagy több Scene lehet betöltve. Ezen Scene-eket és tartalmukat a Hierarchy ablakban látod.
A Scene-ek egyetlen dolgot tartalmaznak: GameObjekt-ek, azaz játékobjektumok egy listáját.
Unity projektben mindent, aminek bármiféle hatása van a játékra, GameObject-ek reprezentálnak.
A GameObjekt-eknek lehetnek “gyerekeik” ezáltal egy faszerkezet építhető belőlük. Innen az ablak neve: Hierarchy (Hierarchia).
Scene ablak
Itt jelenik meg a játékvilág 2D vagy 3D leképezése fejlesztői nézetben.
Game ablak
A végleges játék előnézete. Itt tesztelhető a játék.
Inspector ablak
Bármely kijelölt elem (fájl vagy GameObject) tulajdonságait és beállításait jeleníti meg.
Console ablak
Ezen keresztül tud nekünk a Unity és az általunk írt szoftver szöveges fejlesztői információkat közölni.
Asset Store ablak
A Unity Asset Store egy webes piac Unity-ben használható eszközök és asset-fájlok értékesítésére. Az Asset Store jelentőségét nehéz lenne túlbecsülni a Unity sikere szempontjából. Korábban a weboldal a Unity Editorból is elérhető volt, de már nem az. Hogy ennek ellenére miért jelenik meg még mindig ez a mára teljesen használhatatlan ablak egy projekt indításakor az számomra rejtély. Legjobb egyből (az ablak fülén jobb egérgombbal előhívott menüből) bezárni az ablakot, ugyanis nem lesz, és nem is lehet rá szükségünk.
A Unity Projekt felépítése
A Unity projektek speciális architektúrájú programok. Ezen architektúra ismerete elengedhetetlen Unity játékok építéséhez.
Asset
Az Asset-ek olyan a projektünk részét képező fájlok, amiket fel tudunk használni a játék építéséhez. Asseteket a Project ablakban tudunk megtekinteni.
Scene
A projekt alapjai a Scene típusú asset fájlok. A Scene, azaz jelenet fájlok alapjai minden Unity projektnek. Egy Scene (jelenet) tartalmazza a játékvilágot vagy annak egy-egy részletét.
A Scene egy 3D teret reprezentál, ami feltölthető tetszőleges számú virtuális elemmel. Ezen elemeket GameObject-eknek nevezzük.
Minden projektben kell lennie legalább egy Scene file-nak.
Egyszerre mindig legalább egy Scene file be van töltve. A betöltött Scene vagy Scene-ek tartalma a Hierarchy és Scene ablakban látszik. Új Scene file-t úgy tölthetünk be, ha duplán rákattintunk a Project ablakban.
GameObject
A játéktérben létező, minden megjelenített vagy meg nem jelenített elemet egy GameObject reprezentál. Egy játék egy önálló entitását képezi. Bármi lehet objektum: doboz, kamera, játékos karakter, a játékos karakter egy végtagja, fényforrás, talaj, hangforrás…
“Üres” GameObjec-et úgy hozhatunk létre, hogy a Hierarchy ablakban jobb egérgombbal egy üres részre kattintunk és a lenyíló menüből kiválasztjuk a “Cerate Empty” lehetőséget. A lehetőséget a fenti menüsáv GameObject menüjében is elérjük.
Azon kívül, hogy nevet adhatunk neki, egy GameObject önmagában nem sok beállítással rendelkezik. (Icon, Acitve, Tag, Layer, Static: Ezeket itt nem tárgyaljuk) Ezen kevés tulajdonságokat az inspector menüben láthatjuk, ha kijelöltük az adott GameObject-et.
Eddig a pontig a GameObject nem fog semmilyen szerepet betölteni a szoftverben, ahhoz hogy ezt elérjük fel kell ruházni az objektumot komponensekkel.
Component
Egy GameObject-nek tetszőleges számú és típusú Component-je (komponense) lehet. Egy komponens egy szerepet határoz meg a játékban: Mire is való a GameObject.
Majd minden komponensnek vannak beállításai, amivel a komponens működését határozzuk meg.
Egy újonnan létrehozott GameObject is tartalmaz egy komponenst: a Transform-ot.
Komponensek
Ha körül nézünk a frissen létrehozott Scene-ben, akkor látjuk hogy a unity automatikusan létrehozott néhány objektumot. Ezen GameObject-ekre kattintva az inspector ablakban megtekinthető, hogy milyen komponenseik vannak. Nézzünk át most pár fontosat a teljesség midnen igénye nélkül.
Transform
Az első és legfontosabb a Transform komponens.
A Transform abból a szempontból speciális, hogy ez az egyetlen komponens, ami kötelezően csatolva kell hogy legyen minden egyes GameObject-hez. Ez határozza meg az objektum térbeli tulajdonságait, mint pozíció, elforgatás és méretezés.
Emellett a transform határozza meg a GameObject-ek szülő-gyerek viszonyát, amit a későbbiekben tárgyalunk majd.
Ha megnézzük a friss példa Scene-ünket. A Unity kettő objektumot hozott létre magától, egyiket Main Camera-nak másikat Directional Light-nak nevezi. Jelöljük ki a Main Camara objektumot és az Inspector ablakon nézzük meg, milyen komponensekkel rendelkezik: Transfom, Camera és Audio Listener.
A 3D-s tér és a Transform komponens működését a jövőben részletesen tárgyaljuk:
Camera és AudioListener
Ha felépítettünk egy virtuális játékvilágot abból a felhasználónak valami módon információt kell nyernie. Erre való a Camera és Audio Listener. Míg előbbi a játékos szeme a második a játékos füle a virtuális térben.
Ha megnyitjuk a Game ablakot, láthatóvá válik, hogy mit lát a kamera.
(Fontos megjegyezni, hogy a Scene ablak nem azt mutatja, amit a GameObject-ként működő kamera lát, hanem egy csak a fejlesztők számára elérhető virtuális kamera képét. A Scene ablak pusztán fejlesztői eszköz és a virtuális kamera is, aminek a képét megjeleníti, nem a végleges játék része.)
Bővebben: Virtuális kamerák Hangok a Unity-ben
Renderer-ek
Ahhoz, hogy bármi megjelenjen a játékos számára, szükségünk van Renderer komponensekre. Ezek közül a legfontosabbak:
- SpriteRenderer - 2D kép megjelenítésére. Bővebben: 2D képalkotás
- MeshRenderer - 3D alakzat megjelenítésére. Bővebben: 3D képalkotás
Light
Fények fogják megvilágítani a Renderer-ekkel megjelenített alakokat különböző beállítások szerint.
Bővebben: 3D képalkotás
MonoBehaviour
Magunk is létrehozhatunk komponenst. Ezek a MonoBehaviour scrip-ek. Ezekkel tudjuk programoznia játékot.
Ennek részletei később: Hello Unity: Első Unity programunk
Collider-ek
A colliderek fognak fizikai alakaot adni az objektumainknak. Sok 2D és 3D változata is létezik. Ez fog kelleni ahhoz, hogy ütközni vagy egyéb módokon interaktálni tudjunk a játék többi fizikai alakjával.
Bővebben: Ütközés: Collider-ek és Trigger-ek
Meta-fájlok
Unity-ben minden Assethez és Asset mappához tartozik egy metafájl, ami kiegészítő információkat tartalmaz az adott fájlról. Ezeket általában a Unity hozza létre, de maguk a metafájlok nem fognak látszani a Unity-ben, csak külső fájlböngészőben.
Minden metafájl tartalmaz kiterjesztés (fájlformátum) specifikus információkat és egy egyedi azonosító karaktersort, a GUID-ot. A Unity ezen azonosító alapján fog hivatkozni minden játékban lévő assetre. Ezáltal ha áthelyezünk egy file-t a unity akkor sem veszíti el a referenciát rá. Ebben az esetben viszont figyelnünk kell arra, hogy a fájlal együtt a metafájlját is mozgassuk. Ennek a legbiztonságosabb módja, ha a Project ablakban tesszük ezt. Ekkor nem tudjuk véletlenül sem elrontani mindezt.
A metafájl kiterjesztésspecifikus része beállítható. Egy kép esetén például beállíthatjuk többek közt a tömörítés módját és az átméretező algoritmust. Ezek a beállítások az Inspector ablakban érhetőek el, amikor az assetet kijelöltük.