Developedia
Developedia
Unity Engine alapjai és logikája

Unity Engine alapjai és logikája

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)
image

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.

image

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.

image

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:

A 3D-s tér Unity-benA 3D-s tér Unity-ben

2D és 3D vektorok2D és 3D vektorok

Pozíció és mozgásPozíció és mozgás

ForgatásForgatás

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ákVirtuális kamerák Hangok a Unity-benHangok 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ás2D képalkotás
  • MeshRenderer - 3D alakzat megjelenítésére. Bővebben: 3D képalkotás3D 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ás3D 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 programunkHello 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Ü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.

Logo

Főoldal

Blog

Elmélet

3D Studio

Adatvédelmi nyilatkozat

GY.I.K.

Házirend

Szerző: Marosi Csaba / marosi.csaba@3d-studio.hu

DiscordGitHubLinkedIn