2D játék egységét a stílus torony védelmi

Játék Tower Defense stílusú hihetetlenül népszerű, és ez nem meglepő, hogy nincs annál izgalmasabb, mint nézni a védelem, elpusztítsa a gonosz betolakodók!

Ebben a bemutató, akkor létrehozhat egy bevehetetlen védelmében a szörnyek (szerepét betöltő tornyok) Egységben! Megtudhatja, hogyan.

  • Készítsen hullámok ellenségek, és tanítani őket, hogy kövessék a fordulópontok (fordulópontok).
  • Létrehozása és korszerűsítése a szörnyek, és használja őket, hogy leverjék az ellenséget a pixelek.

A végén, akkor kap egy keretet a játék műfaját, amely a jövőben képes lesz javítani!

Meg kell tudni, hogy az alapokat Unity, például hogyan kell hozzá egy játék Asset és alkatrészek megérteni, mi előregyártott és tudja, C # leginkább.

Én a verzióját OS X verziója Unity, de lehet, és a munka a Windows alatt.

Leírás 2D-s játékok a Unity a stílus Tower Defense

Ebben a bemutató, akkor építeni tornyok a védelmi ellenségei (kis bogarak), mászik a májban, ami a tiéd, és a csatlósai, szörnyek! Akkor tegyük szörnyek stratégiai helyeken és proapgredit őket az arany.

A játékosnak meg kell ölni a rovarok, mielőtt gyönyörködni a cookie-kat, minden új hullám ellenségek nehezebb nyerni. A játék akkor ér véget, ha sikerül túlélni a támadásokat (Victory!), Vagy ha az öt ellenség keksz (vereség!). Itt van egy screenshot a játék elkészült:

2D játék egységét a stílus torony védelmi
Játék a stílus Tower Defense Unity. Védi a májat!

Az első lépések a Unity

Ha még nem telepítette a Unity 5 vagy újabb verzió, letölthető a hivatalos Unity oldalon. Ezen túlmenően, töltse le a starter projekt. csomagolja ki, majd nyissa meg a projekt Tower Defense-Part1-Starter Egységben.

Kezdve a projekt magában foglalja a kép és a hang Eszköz és betakarítás animáció és néhány hasznos szkripteket. Scripts nem utal kifejezetten a játék egy ilyen terv, így nem kell az itt leírt. Továbbá, ez a projekt tartalmaz prefabs, amelyek akkor létre kell hozni a játék karakter. Végül, a projekt tartalmaz egy jelenet a háttérben, és a felhasználói felület.

Nyílt GameScene. megtalálható a Jelenetek mappában. és válassza ki a képarány 4: 3. minden fér el a képernyőn. Látnia kell a következő a lap Játék nézet:

2D játék egységét a stílus torony védelmi

Dolgozunk a szörnyek

Monsters lehet elhelyezni csak a megjelölt pontokon x. Ahhoz, hogy hozzá egy jelenet, drag Images \ Objects \ Openspot a Project Browser fület a Scene (jelenet). Ezen a ponton a helyzet nem számít.

Válassza hierarchiája Openspot. majd adjuk hozzá az alkatrész kattintva az Add Component ellenőr, és válassza ki a fizika 2D \ Box Collider 2D. Unity jelenik doboz ütköztető egy zöld vonal a Scene fülön. Akkor használja a gyorsító észlelni kattintások ezen a helyen.

2D játék egységét a stílus torony védelmi
Unity automatikusan meghatározza a megfelelő méretet a ütköztető. Cool?

Most adjuk hozzá az audio komponens \ audioforrást Openspot. Állítsa be a forrás AudioClip a tower_place. hogy megtalálja az Audio mappát, és tiltsa le a Play On Awake.

Létre kell hozni további 11 ülőhely. Annak ellenére, hogy a kísértés, hogy ezeket a lépéseket újra Unity elegánsabb megoldás: prefabs!

Húzza Openspot a hierarchia a prefabs mappát a Project Browser (Project Browser). Az ő neve kékre vált a hierarchia, annak igazolására, hogy csatlakozik az előregyártott:

Most, hogy van egy panel, akkor létrehozhat annyi példányban, amennyire szüksége van. Egyszerűen húzza Openspot a prefabs mappát a Project Browser a Scene fülön. Ehhez 11-szer a helyszínre is 12 Openspot tárgyakat.

Most használja az ellenőr, hogy állítsa be a helyzetét a 12 oldalak a következő pozíciókban: (-5,2, 3,5, 0). (-2,2, 3,5, 0). (0,8, 3,5, 0). (3.8, 3.5, 0). (-3.8, 0,4, 0). (-0,8, 0,4, 0). (2.2, 0.4, 0). (5,2, 0,4, 0). (-5.2, -3.0, 0). (-2,2, -3,0, 0). (0,8, -3.0, 0). (3.8, -3.0, 0).

Ha elkészült, a jelenetet kell kinéznie:

2D játék egységét a stílus torony védelmi

helyezze a szörnyek

A kényelem, van egy mappát a panel panel Monster.

Előregyártott szörny, használatra kész

Jelenleg áll egy üres játék célja három különböző sprite és animációk alobjektumoknak.

Minden sprite egy szörny különböző teljesítményszint. Panel tartalmaz egy összetevőt Hangforrás. amely akkor fut hang lejátszására, amikor a szörny lőni lézerek.

Hozzon létre egy script, ami lehet helyezni a Monster Openspot.

A Project Browser válassza Openspot a prefabs mappában. A felügyelő, kattintson az Add Component (Add Component), majd válassza az Új Script (új script), és nevezze PlaceMonster. Válassza C Sharp egy nyelvet, majd kattintson a Create és hozzáadása (létrehozása és hozzáadása). mert hozzáad egy script egy panel Openspot minden Openspot'y is tartalmazni fogja ezt a forgatókönyvet.

Kattintson duplán a forgatókönyvet, hogy nyissa meg MonoDevelop. Ezután adjunk hozzá két változó:

Ön létrehoz egy másolatot az objektum tárolt monsterPrefab. hogy hozzon létre egy szörnyeteg, és tárolja azt a szörnyet kezelni azt a játék során.

A szörny a helyszínen

Adjuk hozzá a következő módszerrel minden helyre csak egy szörny:

A canPlaceMonster (), akkor ellenőrizze, hogy a szörny változó üres (null). Ha még mindig igen, akkor az azt jelenti, hogy van egy szörny, és akkor tegye a másik.

Most adjuk hozzá a következő sorokat, amelyeken keresztül a szörny jelenik meg, amikor a felhasználó rákattint a játék célja:

Ez a kód helyezi a szörny a kattintás az egérrel, vagy az érintőképernyő. Tehát hogyan működik ez?

  1. Unity automatikusan meghívja onmouseup ha a játékos rákattint a fizikai tárgy a játék Collider.
  2. Ha telefonál ez a módszer hozza egy új szörnyeteg, ha canPlaceMonster () értéke igaz.
  3. Monster segítségével lehet létrehozni példányosíthat módszerrel. amely létrehoz egy előregyártott mintát egy speciális helyzetét és forgását. Ebben az esetben, akkor másolja monsterPrefab. alkalmazzák a jelenlegi helyzet és a forgatás a játéktér tárgy, csatolja az eredményt GameObject, és mentse el a szörnyet.
  4. És végül, hívja PlayOneShot. játszani a hanghatás kötve alkatrész AudioSource objektumot.

Most a script PlaceMonster tud tenni egy új szörnyeteg, de még mindig szükség van, hogy kijelölje panel.

Egy kívánt előregyártott

Mentsd el a fájlt, majd kapcsolja vissza a Unity. Hozzárendelése változó monsterPrefab először válassza Openspot a prefabs mappát a Project Browser. A felügyelő, kattintson a kör a jogot PlaceMonster (Script) komponens a területen, és válassza ki a panel Monster Monster a párbeszédablakban.

Kezdés szakaszban, és hozzon létre szörnyek különböző pontokon x-szel jelölt. kattintással vagy egy érintőképernyő.

2D játék egységét a stílus torony védelmi
Most is létrehozhat a szörnyeket. Mindazonáltal ezek olyanok, mint egy furcsa rendetlenség, mert az összes gyerek szörnyek rajzolt sprite. Majd rögzíteni, hogy később.

Vérzés szörnyek Unity-game

Az alábbi képen látható, hogy a szörnyek, hogy inkább félelmetes magasabb szinteken.

2D játék egységét a stílus torony védelmi
Mi a cutie! De ha megpróbálja ellopni a cookie-kat, ez a szörny pedig egy gyilkos.

A forgatókönyv az alapja a rendszer alkalmazásának szintek szörnyek. Nyomon követi, hogy milyen erős a szörny kell minden szinten, és természetesen, a jelenlegi szint a szörnyeteg. Add hozzá ezt a forgatókönyvet.

Válassza prefabs / Monster a Project Browser. Új C # -script nevű MonsterData. Nyisd ki a MonoDevelop és adjuk hozzá a következő kódot, mielőtt az osztály MonsterData.

Létrehoztunk MonsterLevel osztályban. Úgy tartja a költség (arany, ami azt írja elő később), és a megjelenése különböző szörnyek.

A tárgyak lehet szerkeszteni az ellenőr, hozzáadjuk a vonal [System.Serializable], hogy a felső osztály. Ez lehetővé teszi, hogy gyorsan változik minden érték az osztály szintjén - akkor is, ha a játék fut. Ez hihetetlenül hasznos elmondják játék egyensúlyát.

Szintjének meghatározása a szörnyeteg

Ebben az esetben, akkor tárolja egy előre meghatározott MonsterLevel listáján.

Miért nem csak használja MonsterLevel []. Bár, ha csak azért, mert szükségünk van az index objektum MonsterLevel többször. A kód write nem olyan nehéz, így lesz használni a indexOf (). amely végrehajtja a funkciókat listája. Nincs szükség újra feltalálni a kereket. ]

A tetején MonsterData.cs. adjunk hozzá egy használó nyilatkozata:

Ez ad hozzáférést a megosztott adatok struktúrákat, így használhatja a List osztály a forgatókönyvet.

Általános funkciók nagy részét a C #. Ezeket fel lehet használni, hogy meghatározza a szerkezet típusbiztos adatok hivatkozás nélkül típusai. Ez nagyon kényelmes osztályok, mint a listán, és készlet.

Most adjuk hozzá a következő változó tárolja MonsterData MonsterLevel lista:

Segítségével általános funkciók biztosítják, hogy a szintek listája csak a következőket tartalmazhatja MonsterLevel objektumokat. Mentsd el a fájlt kapcsolót Unity szabni minden szörny szintje. Válassza prefabs / Monster a Project Browser. Az ellenőr láthatjuk a Levels mappába az alkatrész MonsterData (Script). Méretének beállítása 3.

2D játék egységét a stílus torony védelmi

Ezután állítsa be a költség minden szinten:

Most értékeket rendelhetünk AH területén megjelenítés. A Project ablakban bontsa prefabs / Monster. hogy a könyvtárra. Húzza Monster0 a vizualizációs elem elem 0.

Ismételd meg az Monster1 megbízást Element 1. és Monster2 hogy Element 2. GIF-képet feltöltött mutatunk ezt a folyamatot:

Ha kiválasztja prefabs / Monster. Panel kell kinéznie:

2D játék egységét a stílus torony védelmi
Szintjének meghatározása a szörnyeket a felügyelő

Jelenlegi szintjét meghatározó

Visszaváltás MonsterData.cs a MonoDevelop és újabb változó MonsterData.

A privát változó CurrentLevel mi lesz írva ... várjunk csak ... a jelenlegi szinten a szörnyeteg. Nem számítottunk. ]

Egy kicsit a C #, nem? Ez az, amit mi itt:

  1. Meghatározza a tulajdonságok egy privát változó CurrentLevel. Ha azt állapítjuk meg tulajdonság, lehetséges, hogy hatására mind bármely változó: akár CurrentLevel (belső osztály) vagy mint monster.CurrentLevel (külső). Megadhatja a viselkedést a get és set metódusok tulajdonságait. Használata csak egy getter csak szetter, vagy használja mindkettőt, akkor lehet, hogy egy tulajdonság csak olvasható, csak írható, vagy a rendelkezésre álló engedély ezen intézkedések.
  2. A getter, akkor visszatér CurrentLevel.
  3. A szetter hozzárendel egy új értéket CurrentLevel. Ekkor az index a jelenlegi szinten. Végül végiglépdelni a szint, és állítsa a megjelenítés az aktív és inaktív függően currentLevelIndex. Ez jó, mert azt jelenti, hogy ha valaki beállítja CurrentLevel. Sprite automatikusan frissül. Tulajdonságok itt nagyon hasznos!

Add hozzá a következő OnEnable:

Itt CurrentLevel be, amikor forgalomba, biztosítva, hogy ez csak azt mutatja a helyes sprite.

Fontos, hogy inicializálni az ingatlan OnEnable helyett OnStart. mert a módszerekre van, amikor létre prefabs.

OnEnable egyszer hívódik létrehozásakor panel (ha panel már megtartotta a bekapcsolt állapotban), de OnStart nem hívják, amíg az objektum nem fut.

Be kell, hogy ellenőrizze ezeket az adatokat, mielőtt helyet a szörny, ebben a menetben OnEnable.

Mentse el a fájlt, és kapcsoljuk be a Unity. A projekt futtatásához, és intézkedik a szörnyeket. Ők most azt mutatják megfelelően.

2D játék egységét a stílus torony védelmi

frissíteni szörnyek

Menj vissza MonoDevelop és adjuk hozzá a következő módszert MonsterData:

A getNextLevel kapsz CurrentLevel index és a maximális szintet. Ha a szörny még nem teljesen túlhajtott, visszaadja az index a következő szintre, különben - null.

Akkor használja ezt a módszert annak eldöntésére, hogy egy frissítés lehetséges szörnyeteg. Adjuk hozzá a következő módszerrel szint növelése szörny:

Itt kap az index a jelenlegi szinten, és ellenőrizze, hogy ez kisebb levels.Count - 1. Ha igen, - szörnyeteg még mindig lehet szivattyúzni, így rendelni CurrentLevel következő szintre.

Vizsgálata kiépíthetőségével

Mentsd el a fájlt, majd kapcsoljuk be a PlaceMonster.cs a MonoDevelop és ezt az új módszert:

Itt nézd meg, hogy van egy szörny, mely bővíthető ellenőrzésével változó szörny null. Ha igen, akkor megkapjuk a jelenlegi szinten a szörny MonsterData. Ezt követően, ellenőrizze, hogy a magasabb szintű hozzáférés getNextLevel () értéke null. Ha a „pumpáló” a szörny lehet, igazat ad vissza. egyébként - hamis.

Engedélyezze bővítést arany

Ahhoz, hogy a bővítési lehetőséget, adjunk hozzá mást, ha nyilatkozatot onmouseup:

Ellenőrizze, hogy a frissítés keresztül lehetséges canUpgradeMonster (). Ha igen, akkor férhetnek hozzá az alkatrész MonsterData GetComponent (), és hívja increaseLevel (). ami növeli a szintet a szörnyeteg. Végül futtatja a hangot AudioSource szörnyeteg. Mentsd el a fájlt, és menj vissza a Unity. A játék indítása, beállítása és korszerűsítése annyi szörnyek csak lehetséges. ameddig csak lehetséges.

2D játék egységét a stílus torony védelmi
Szakaszában frissíteni szörny Unity

A következő ülésen Tower Defense Unity, bemutatjuk a játék in-game pénznemben, a munka az útvonalat a szörnyek, és mások.

2D játék egységét a stílus torony védelmi

  • egység
2D játék Unity. Részletes útmutatást. 1. rész

Kapcsolódó cikkek