Skip navigation

Játékelemek és komponensek

Grafikák elhelyezése

Ha megvannak a projekt ablakban a játékelemek, akkor elkezdhetjük összeállítani a játékot.

Ehhez először ki kell választanunk a megfelelő játékelemeket, és azokat a színtér nézetre húzva elhelyezhetjük őket.

Képek elhelyezése a projektben

Ha elhelyeztünk egy játékelemet, akkor a toolbar-on levő lejátszás gomb segítségével el is indíthatjuk a "Játékunkat".

Játék elindítása

A játék leállítása ugyanezzel a gombbal történik.

Elemek kinézete és mozgatása

A Pálya tervezése közben a pálya elemeit tetszőleges módon mozgathatjuk, forgathatjuk és méretezhetjük. Ezt több eszköz segíti, amik közül a Toolbar bal oldalán levő gombokkal tudunk választani.

Pozícionáló elemek.

Ezek sorrendben:

  • Navigálás: képernyő mozgatása, hogy a pálya melyik részér nézzük.
  • Elemek mozgatása;
  • Elemek forgatása;
  • Elemek átméretezése;
  • Doboz eszköz: Elemek mozgatása, és a sarok megfogásával átméretezés;
  • Doboz eszköz forgatással: Ugyanaz, mint a korábbi, csak a sarokkal forgatni lehet;
  • Testre szabható eszközök: Ezekkel most nem kell foglalkozni

A fenti eszközök kipróbálása mindenkinek legyen önálló feladat.

A navigáláshoz tartozik még, hogy a kiválasztott eszköztől függetlenül az egér középső gombjával tudunk navigálni a színtéren.

Végül a kinézethez és a mozgatáshoz kötötten érdemes kattintással kiválasztani egy játékelemet, és megnézni, hogy hogyan is néz ki a szerkezete az Inspector-ban.

Egyszerű grafikai elem az Inspector-ban

Itt azt láthatjuk, hogy a játékelemnek két komponense van.

Az első komponens egy Transfrom elem. Ez a komponens kötelezően van minden GameObject-nek, és meghatározza az elem méretét (Scale), pozícióját (Position), forgását (Rotation). Ha az elemet elmozdítjuk, akkor az itt is látható lesz. Ez fordítva is igaz, vagyis ha kézzel beállítunk itt egy értéket, akkor az a színtéren is látható lesz.

A szabályok a mozgatással kapcsolatban:

  • Position: Egy X, Y, Z tengelyekkel megadott koordináta rendszerben tudjuk megadni az elem helyzetét. Tudni kell hát a koordináta-geometriát.
  • Rotation: Forgatni tudjuk vele az elemet az X, Y és Z tengelyek körül. Ebből bármilyen elfordulás előállítható, de ezt ezen a ponton jobb ennyiben hagyni.
  • Scale: A korábbiakhoz hasonlóan X, Y, és Z tengelyek mentén tudjuk átméretezni a tárgyat. Tengelyenként külön értékkel, vagyis az elemeket lehet nyújtani. A skálákon 1-es érték meghagyja az eredeti méretet, 1 fölötti érték nagyít, 0-1 közötti kicsinyít, 0 alatti pedig tükröz.

Vissza térve a játékelemhez annak van még egy fontos komponense, ami Sprite Renderer névre hallgat. A Sprite-ok a játékfejlesztésben 2D grafikákat jelentenek, a "rendrelelés" pedig a megjelenítés folyamata. Ez a komponens tehát azért felel, hogy megjelenítsen egy 2D grafikát, magát a képet, amit a színtérbe tettünk. Ha eltávolítjuk a komponenst, akkor a kép eltűnik.

Gravitáció hozzáadása

A játékunk ezen a ponton még nem túl izgalmas. Ha elindítjuk, akkor is minden egy helyben marad. Ez azért van, mert a játékunkban az elemek pontosan azt, és csak azt csinálják, amit mondunk nekik. Ha nem adjuk meg külön, hogy hasson rájuk a akkor nem is fog.

Ahhoz, hogy a játékelemek leessenek, összeütközzenek külön fizikai viselkedést kell hozzájuk rendelni. Ebből ki lehet találni, hogy új komponenseket adunk a játékelemekhez.

Új játékelemet hozzáadni az Inspector ablakban alján található "Add Component" gombbal lehet.

Komponens hozzáadása a GameObject-hez

Itt csoportokba foglalva megtaláljuk az összes létező komponenst, amit használhatunk, vagy új komponenst is létrehozhatunk.

Ha fizikát szeretnénk adni a játékoshoz, akkor a "Phisics 2D / Rigidbody 2D" típusú komponenst kell hozzáadnunk.

Merevtest komponens

Ahogy a komponens nevén is látszik merev-test fizikai tulajdonságokat ad az őt tároló objektumnak. Ez azt jelenti, hogy a játékosnak mostantól van tömege, sebessége, lendülete és hat rá a gravitáció. A komponensnek paraméterei is vannak, amiknek átnézését önálló feladatnak hagyjuk. A fontosabb paraméterekre később ki fogunk térni.

Ha most elindítjuk a játékot, akkor a játékos karaktere már elkezd lefelé esni. Nem kell meglepődni, most még az is normális, hogy a talajon is átesik.

Ütközés kezelése

Nem kell meglepődni, hogy a fenti példában a játékos még átesik a talajon. Ahogy korábban említettük egy program mindig pont azt, és csakis azt csinálja amit mondunk neki. A játékos azért esik át a talajon, mert nem szóltunk neki, hogy bele kellene ütköznie a szilárd tárgyakba. Ezt egy újabb komponenssel tudjuk megoldani, amit "Collider"-nek neveznek.

A Unity-ne belül többféle Collider van. Vannak gömb, kapszula formájúak, de téglatest alakúak is. A mi esetünkben egy téglalap a leg-megfelelőbb, amit az Add component gomb "Phisics 2D / Box Collider 2D" menüpontjában találunk. Ennek hatására meg is jelenik az új komponens.

Téglalap alakú ütköző felület.

Ennek a komponensnek is vannak különböző beállításai, amik közül a legfontosabb talán az "Edit collider" gomb. Ha ezt megnyomjuk, akkor a színtér nézetben a játékobjektum körül megjelenik egy zöld négyzet, és beállíthatjuk, hogy hol legyen az ütköző felületek vége.

Itt kell megjegyeznünk, hogy a játékfejlesztésben a látható, és a fizikai világ lehet nagyon különböző. A játékelemeknek adunk kinézetet, de az ütköző felületeik általában egyszerűbbek. Ennek főként az az oka, hogy a fizikai szimuláció költségesebb, amint a grafikai megjelenítés, így sokkal gyorsabban tud futni a játékunk, ha egy egyszerűsített fizikát használunk.

Ezzel sokat halad a játékunk, el is indíthatjuk. Ha így teszünk, akkor viszont azt fogjuk látni, hogy nem változott semmi, a játékos még mindig átesik a talajon. Ez azért van, mert a játékos már tudna ütközni, viszont nincs mivel. Hozzá kell adni a talajhoz is egy colluder-t. Utána viszont már meg kell hogy álljon a játékos a talajon.

A fejlesztés ezen a pontján azt is fontos tudni, hogy a Unity-ben két különálló fizikai motor van. Egy 2-dmineziós, és egy 3-dimenziós. A 2D fizikai keret csak x-y koordinátákat néz a fizika számításánál, míg a 3D x-y-z tengelyeket. Az is fontos, hogy a két fizika típus semilyen kapcsolatban nincs egymással. Vagyis ha az összekeverjük a komponenseket és az egyik elemnek véletlenül a normál "Phisics" csoportból adunk egy 3D "Box Collidert", akkor az nem fog összetüközni a 2D fizikával, és órákig vakarhatjuk a fejünket, hogy hol a hiba.

Első játék. A játékos áll a talajon.