Alkalmazások létrehozása Androidra. A Unity használata alkalmazások fejlesztésére 3D játék készítése Androidra

Fejlődés mobil alkalmazások a számítástechnikai ipar egyik legjövedelmezőbb foglalkozása. Egy Androidos játék létrehozása több száz vagy több ezer dollárba kerül, a profit pedig akár egymillió dollárt is elérhet. Ebben a tekintetben sokan érdeklődnek a telefon alkalmazások fejlesztése iránt. Ebből a cikkből megtudhatja, hogyan hozhat létre egy Android-játékot a semmiből a számítógép segítségével, melyik motort és tervezőt jobb választani.

Egyik sem sikeres játék nem nélkülözheti a gyönyörű grafikát, így a tervezés megalkotása a fejlesztés egyik legfontosabb szakasza. A tervezés az Android operációs rendszeren „tervdokumentum” vagy tervdokumentum segítségével valósul meg. El kell kezdenie egy játék létrehozását annak részletes tanulmányozásával. A fájl tartalmazza:

  1. Objektummodellek;
  2. Funkcionális specifikációk;
  3. Játéktartalom;
  4. Felület.

Vizsgáljuk meg részletesebben az egyes pontokat.

Objektummodellek

Ez az egyes elemek funkcióira vonatkozó információ. Az objektummodellek felelősek a tárgyak vásárlásának és eladásának képességéért, valamint a karakterek játékjellemzőinek javításáért.

Funkcionális specifikációk

Leírja a játékmenetet, az egyes karakterek főbb jellemzőit. Leírja a funkciókat is játékelemek- fegyverek, elsősegély-készletek, páncélok és mások. Lényegében a funkcionális specifikációk azok a szabályok, amelyek szerint a játék folyamata zajlik. Minél jobban ki van dolgozva ez a rész, annál könnyebb lesz jó minőségű Android-játékot létrehozni.

Játéktartalom

Ez a játék szöveges kitöltése. Leírja a szereplők párbeszédét és azt, hogy milyen fegyverekkel lehet sebzést okozni, mennyi életerőt vesz igénybe egy találat, milyen tulajdonságok nőnek a különféle felszerelések használatakor. Ez is tartalmaz Részletes leírás minden elemet.

Felület

A felület az, ahogyan a felhasználó interakcióba lép a játékkal. Tartalmaz gombokat, amelyekkel vezérelheti a karaktert, és menürészeket: például játék, pontszám, beállítások, legjobb játékosok, súgó. Ha nincs tapasztalata Android-alkalmazások létrehozásában, a saját létrehozása előtt töltse le a Play Marketről, elemezze a népszerű játékokat, és vigye át a legjobb megoldásokat projektjébe.

Játék motor

Minden játék lényege a motor. Ez egy olyan szoftver, amely lehetővé teszi annak fejlesztését és futtatását. Programok egész sorát tartalmazza, beleértve a renderelő motort, a fizikai motort, a hangot, az animációt és még sok mást. A programok írásának megkönnyítése érdekében a külső fejlesztők saját játékmotorokat készítenek kifejezetten Android-alkalmazásokhoz.

Mindegyikük különböző funkciókat kínál: egyesek 3D-re, mások 2D-re készültek, és több platformon is támogathatók. Rengeteg ilyen motor létezik, de ha kezdő vagy, akkor jobb, ha a legnépszerűbbet választja, mivel ott minden szükséges funkció megtalálható.

UDK

Nyomaték 2d/3d

Mi az a játéktervező?

A Constructor egy játékmotort és egy integrált fejlesztői környezetet ötvöző program. A konstruktor a fejlesztési folyamatot elérhetővé teszi olyan emberek számára, akik nem rendelkeznek programozási ismeretekkel. Egyes tervezők lehetővé teszik bizonyos műfajú játékok létrehozását, mások maximális funkcionalitással rendelkeznek, de sokkal több pénzbe kerülnek. Egy kezdő mobilalkalmazás-készítő számára a tervező kiválasztása az egyik legfontosabb pillanat, mert a jövőbeli alkalmazás sorsa a képességeitől függ.

A konstruktor segítségével különféle műfajú játékokat hozhat létre Windows, Android és iOS rendszerre. Ajánlatok nagy választék kész helyszínek, tárgyak, karakterek és hangtervezés, így az első Android-játék elkészítése nem fog sok időt igénybe venni. A JS és C++ programozási nyelveket ismerő felhasználók használhatják a beágyazott GML-t. Az egyetlen hátránya, hogy a program nincs lefordítva oroszra.

Következtetés

Androidos játék létrehozása nem egyszerű, de nagyon jövedelmező vállalkozás. Ha úgy dönt, hogy játékot fejleszt, és pénzt keres vele, először dolgozza ki az ötletet. Ezután írjon egy „tervdokumentumot”, és válassza ki a játékmotort, amely maximalizálja a benne rejlő lehetőségeket. Ezt követően közvetlenül folytathatja az alkalmazás létrehozását a konstruktorban.

Videó

Ha többet szeretne megtudni a folyamatról Android játékok létrehozása, nézze meg a videósorozatot ehhez a tevékenységhez.

A Unity az a motor, amelyen a legtöbb modern játékok különböző platformokon. A motor segítségével olyan játékokat lehet létrehozni, amelyek számítógépeken (Windows, Linux, MacOS), mobiltelefonokon, táblagépeken (Android, iOS) stb. játék konzolok PlayStation, Xbox, Nintendo.

Hogyan készítsünk játékokat a Unity-ben?

Az egység egy komponens-orientált koncepción alapul. Valójában minden játék további összetevőkkel hígított tárgyak tömegéből áll. Például egy platformer készítése során készítünk egy GameObjectet, amelyhez plusz egy grafikus komponenst csatolunk, ami a karakter megjelenítéséért felel, illetve egy vezérlő komponenst, amely egér, billentyűzet, joystick segítségével biztosítja a karakter irányítását. vagy érintőképernyő. A motor nem korlátozza az ilyen modulok számát. A GameObjecthez annyi komponenst adhatunk, amennyi szükséges. A motoron végzett minden munka a GameObject létrehozásán és a megfelelő komponensek alkalmazásán alapul.

A kezdőket félrevezetheti a folyamat látszólagos egyszerűsége, bár ez nem így van. Egyedi és népszerű játék sok komponenst a nulláról kell írni. Pontosabban, a Unity környezetben ezt scriptnek hívják. A natív szkriptnyelv a C#, de részben a JavaScript és a Boo (a Python kivágott változata) is használatos. A saját komponensek elkészítése nem egyszerű, akár azt is mondhatnánk, hogy bonyolult eljárás, közvetlenül kötődik a klasszikus programozáshoz. Kellő szintű programozási tudás nélkül nehéz lesz.

Támogatott platformok

Sok nagy projekt a Unity-t részesíti előnyben a motorral kompatibilis platformok hatalmas listája miatt. Az elkészült alkalmazás bármely számítógépes operációs rendszeren, népszerű mobilplatformokon és SmartTV-n elindítható. Mit is mondhatnánk, akár böngészős játékok és alkalmazások is bizonyos platformokhoz ( mint a Tizen OS) túlnyomórészt a Unityben fejlesztik.

Itt azonban nem minden olyan zökkenőmentes. Ha szükséges, alacsony szintű kód alapján írhatsz konkrét algoritmusokat, ugyanahhoz az Androidhoz alapos Java ismerete szükséges.

Ugyanez igaz az iOS-re is. Másik iOS funkció hogy csak az Apple számítógépéről vagy táblagépéről lehet rá fejleszteni. Macbook vagy hasonló készülék hiányában a játék megjelenése gyorsan elakad és a Unity-nek semmi köze hozzá, maga az Apple is hasonló megkötést ír elő. A következtetés egyszerű: ha iOS fejlesztés szerepel a tervekben, akkor érdemes előre kiválasztani az összeszereléshez megfelelő eszközt.

Hogyan és hol lehet játékot fejleszteni a motoron?

Hosszú játékfejlesztési folyamatot tudunk végrehajtani mind Windowson, mind Mac OS X-en belül. A szerkesztőnek Linuxra már vannak verziói, de egyelőre nem számíthatunk stabil munkájukra. A fejlesztő az idő nagy részét azzal tölti, hogy a Unity szerkesztőben készít játékot. Még sok időnk van a script kód megírására, elkészíthetjük akár a szabványos MonoDevelop-ban, akár bármely harmadik féltől származó szerkesztőben. Most aktívan használják a Visual Studio-t, valamint a Sublime Text-et, de csak megfelelő konfigurációval.

Sziasztok! Miután megtanultam, hogyan kell játékokat készíteni ezen a motoron, ugyanezt szeretném megtanítani neked. Először is szükségünk van magára a Unity3d-re, bármilyen 3D-s modellszerkesztőre és egyenes karokra, amelyek a vállból nőnek ki.

1. A program elsajátítása

Kezdetnek a Monodevelop telepítését javaslom! Értsük meg, mi az az egység. A Unity egy többplatformos játékfejlesztő környezet. Egyszerűsége és érthetősége miatt minden harmadik csinált már rajta játékot legalább egyszer.

Tekintsük a fenti képernyőképet:

  • A színpad a kreatív homokozód.
  • Project – itt az összes animáció és modell, hangok és textúrák.
  • Ha modelleket szeretne telepíteni a felső eszköztárra, válassza az Eszközök - Új eszköz importálása lehetőséget. Eszközök-importálási csomag-egyéni csomag is lehetséges. A második esetben a csomagnak .unity kiterjesztésűnek kell lennie.
  • Hierarchia – minden objektum a jelenetben. Ott létrehozza az objektum szüleit. Csak helyezzen át egy objektumot egy másikra a hierarchia menüben, és csatolva lesz. Az eredmény egyfajta mappa lesz.
  • Eszköztár – eszközök listája. Itt engedélyezheti a 2D, 3D módot.
  • Inspector – egy objektum funkciója, ahol animációkat, szkripteket és egyebeket ad hozzá. Ott lehet használni az eszközöket: mozgatni a kamerát, mozgatni a tárgyat, nyújtani, elforgatni a tárgyat.


Most látja benne az objektum menüt, ahol animációt, szkripteket és egyebeket adhat hozzá.

Szerintem ezzel a menüvel nem lesz gond.
Kattintson bármelyik objektum létrehozásához.

Általánosságban elmondható, hogy áttanulmányoztuk a programot, hamarosan saját játékokat is írhatunk.

2. Hozzon létre egy egyszerű játékot

Először is hozzunk létre egy Terep létrehozása területet. Adjon hozzá füvet és fákat. A jobb oldalon a talajra kattintva megjelenik egy ablak, ahol fákat, füvet kell kiválasztani.


Hozzon létre hegyeket és dudorokat is. Ezután töltse be a Characher vezérlőcsomagot a projektbe. Ezután az ablakban a Standard eszközök-karakterek kontroller projekttel keresünk, és kiválasztjuk az első személyű nézetet (kapszula) vagy harmadik személyű nézetet (szerelő).
Ha az első személy, akkor csak tedd a földre. Ha a harmadiktól, akkor le kell töltenie az animációt. Azt is javaslom, hogy állítsa a jelenet megvilágítását Create-Directional Light-ra.


Zene hozzáadásához húzza a kívánt elemre.
A játék készen van, de hogyan kell lefordítani?

Ehhez lépjen a Fájlépítés beállításai - A lejátszó beállításai (címke és név) menüpontra. Válassz egy platformot, és kész. Ehhez telepítenie kell az Android SDK-t. De ott meg kell adni a mappát az SDK-val, és nem csak az SDK-ra van szüksége, hanem a kívánt szintű API-ra (például az Android 4.2-ben API 17 van). Például ahhoz, hogy a játék Android 4.0+ rendszeren futhasson, telepítenie kell ezeket az API-kat.

A következő cikkben elmondom, hogyan állíthat be vezérlőket Android vagy iOS rendszerhez, és megtanulhatja, hogyan írhat saját maga szkripteket.

Megtekintések száma: 19 374

Beszéltünk arról, hogyan hozhat létre saját játékot Androidon az Unreal Engine segítségével. Ebben a cikkben egy másik, hasonlóan népszerű játékfejlesztő motort fogunk megvizsgálni - egység.

A Unity egy nagyon híres motor az indie fejlesztők körében. Valójában ez egy többplatformos motor, amely lehetővé teszi a fejlesztést 3D- és 2D-játékok. A Unity-t a többi motortól megkülönböztető jellemző az alacsony belépési küszöb a kezdők számára, miközben gazdag eszközkészlettel rendelkezik a profik számára. A cross-platform lehetővé teszi alkalmazások fejlesztését bármilyen platformra, az asztali játékoktól a mobilokig.

Külön érdemes megemlíteni az előfizetési rendszert, mivel a Unity nem teljesen ingyenes termék. Többféle előfizetés létezik:

  • Személyes. Ingyenes verzió, amely tartalmazza a motor összes fő funkcióját. Ennek a következő korlátai vannak: az évi bevétel vagy a felvett pénzeszközök összege nem haladhatja meg 100000$ .
  • Plusz. Per 35 dollár havonta különféle jelentések és elemzések állnak rendelkezésre, valamint lehetőség van a kezdőképernyő megváltoztatására, 20% - kedvezmény a vásárláskor Eszköztárés különféle kisebb juttatások. Ennek a következő korlátozása van: az év bevétele vagy a felvett pénzösszeg nem haladhatja meg 200000$ .
  • Pro. Per 125 dollár havonta verzió minden előnyét tartalmazza Plusz valamint professzionális szolgáltatás és prémium támogatás. Nincs korlátozás a forgalomra vagy a források összegére vonatkozóan.
  • Külön verziók üzleti célra (nagyvállalatok használják).

Így a kis költségvetéssel rendelkező független fejlesztőknek meg kell elégedniük a verzióval Személyes vagy Plusz ellenkező esetben elő kell fizetni Pro. Ebben a cikkben azt fogjuk használni ingyenes verzió az első nekifutásra.

1. lépés Telepítse a Unity-t

A Unity telepítésének megkezdéséhez fel kell lépnie a Unity Store webhelyére, ahol a rendszer felkéri az előfizetés típusának kiválasztására. Mint fentebb említettük, mi választunk Személyes.

Ezután a rendszer kéri, hogy fogadja el a használati feltételeket, és töltse le a telepítőt. Ki is lehet nézni rendszerkövetelmények dolgozni a Unityvel.

A telepítő elindítása után a rendszer felkéri a telepítendő összetevők kiválasztására. Mivel Android-alkalmazást kell létrehoznunk, bejelöljük a négyzetet Android Build támogatás. Ezenkívül, ha szükséges, a Unity helyett telepítheti Visual Studio Community 2017 a programozáshoz C#.

Ezután már csak a telepítési útvonal kiválasztása és a Unity telepítésének megkezdése van hátra.

2. lépés: A Unity regisztrálása és beállítása

A telepítés befejezése és a Unity futtatása után a rendszer felkér, hogy jelentkezzünk be fiókunkkal.

Ezután ismét felkérést kap, hogy válasszon előfizetést, mi is a Személyesre fogunk összpontosítani. Ebben az esetben meg kell erősítenie, hogy a vállalat éves bevétele kevesebb, mint 100 000 USD, vagy hogy a Unity-t képzési célokra használják.

A végén azt javasoljuk, hogy készítsen egy kis felmérést, amelyben meg kell válaszolnia, mit csinál, és milyen célból telepíti a Unity-t.

3. lépés: Hozzon létre egy új projektet

A Unity konfigurálása után a projekt kiválasztásának / létrehozásának képernyőjéhez jutunk. Kattints ide Új az új projekt létrehozásához.

Ezt követően a megjelenő ablakban meg kell adnia a projekt nevét és a könyvtárat, ahol a projekt található. Ne felejtse el bejelölni a négyzetet sem 3D a szerkesztő 3D módban történő használatához.

Ha ezzel végzett, kattintson Projekt létrehozása projekt létrehozásához. Ezt követően megnyílik egy szerkesztő ablak egy előre generált jelenettel.

Egyelőre nem foglalkozunk a programozás bonyodalmaival, és egy kész játékot veszünk példának. Erre van Eszköztár, amely hatalmas számú kész modellt, animációt, hangot (és még játékot is) tartalmaz fizetős és ingyenes egyaránt.

Az Eszköztár megnyitásához a menüben kell lennie Ablak választ Eszköztár(billentyűkombináció ctrl-9).

Kinyílik az üzlet kirakata. Írja be a keresősávba " flappy madár stílusú példajáték", és nyisson meg egy ingyenes példát, amelyet a projektünkben fogunk használni.

Kattintás Letöltésés így a letöltés után importálhatja a projektbe. Ehhez kattintson a gombra Importálás, amely után megjelenik egy figyelmeztetés, hogy a projekt beállításai az importálás után módosulnak.

Miután beleegyezett az importálásba, megjelenik egy ablak, amelyben ki kell választania az importálni kívánt összetevőket. Jelölje ki az összeset, és kattintson Importálás.

Az importálás befejezése után az új fájlok megjelennek a Project Browserben. Ezek a játékfájlok. A jelenet szerkesztőben való megnyitásához bontsa ki Csapkodó madár stílus - Jelenetekés kattintson duplán .

Ennek eredményeként a játék jelenete megjelenik a 3D szerkesztő ablakában.

A gombra kattintva ellenőrizheti a játék működését a Unityben játék a szerkesztőablak felett.

4. lépés Az Android eszközök konfigurálása

Jegyzet: ha használ android stúdió, akkor már minden telepítve van szükséges alkatrészeketés így nyugodtan továbbléphet a következő lépésre.

Az eredményül kapott játék Androidon való összeállításához telepítenie kell a következő eszközöket:

  • Java Development Kit (JDK). Letöltheti a Java webhelyről. A linkre kattintva a legfelül látni fogod Java platform (JDK), kattintson Letöltés a felirat mellett, majd válassza ki a sajátját operációs rendszerés indítsa el a letöltést. Ezután kövesse a telepítő utasításait.
  • Android SDK. a legtöbben egyszerű módon a legújabb verzió telepítéséhez töltse le az Android Studio-t, amelyhez ez az SDK is tartozik. Ehhez nyissa meg az Android Studio webhelyét, és kattintson a gombra Android Studio letöltése. Az Android Studio telepítője telepíti az Android fejlesztéshez szükséges alapvető Android SDK összetevőket.

5. lépés: Készítse elő a projektet az indításhoz

Először is módosítania kell a fejlesztői platformot Androidra. Ehhez a Unity alkalmazásban nyissa meg a Fájl menüt, és válassza a Build Settings menüpontot.

A megjelenő ablakban válassza ki a lehetőséget Android majd nyomja meg kapcsoló platform.

A platformváltó azt jelzi, hogy Android-alkalmazást fogunk építeni. Ez azt jelenti, hogy amikor elkészítjük az alkalmazást, a Unity létrehozza APK fájl. A platformváltás arra is kényszeríti a Unity-t, hogy ismét importálja a projekt összes eszközét. Ez nem tart sokáig egy kis projektnél, de ne feledje, hogy ez a művelet hosszú ideig tarthat nagy projekteknél.

Most meg kell adnunk egy csomagnevet az alkalmazáshoz.

Jegyzet: A csomagnév az alkalmazás egyedi azonosítója, és fordított DNS-stílusban van írva a formátumban com.CompanyName.ProductName. Az alkalmazás közzététele után A Google Play a csomag neve már nem módosítható.

Ehhez lépjen a menübe Szerkesztésés válassz Projektbeállítások - Player.

A Unity jobb oldalán megnyílik egy ablak számos különböző beállítással, például az alkalmazás verziójával, a cél- és minimális SDK-val, az ikonok kiválasztásával stb. Itt kell a blokkban Egyéb beállitások megtalálja Azonosításés állítsa be a csomag nevét a mezőben csomag név. Más beállításokat is módosíthat, ha kívánja.

Most már csak az Android SDK és JDK elérési útját kell megadni. Ehhez lépjen a menübe, és válassza ki Szerkesztés-Beállítások.

A megjelenő ablakban lépjen a következőre: Külső eszközökés a mezőkön SDKés JDK adja meg a megfelelő elérési utat, majd zárja be az ablakot.

6. lépés: Az alkalmazás létrehozása és futtatása

Itt az ideje, hogy elkészítse első Unity alkalmazását. Ehhez válassza ki a menüből Fájl – Építési beállítások. Megnyílik egy ablak, amelyben hozzá kell adnia az összeállítani kívánt jelenetet. Mivel ez a jelenet már nyitva van a szerkesztőben, csak kattintson Nyitott jelenetek hozzáadása az összeállításhoz adásához, a hozzáadás után látni fogja a jelenetek listájában.

Csak meg kell nyomni Épít, ami után a Unity elkezdi az alkalmazás építését. Ezt megelőzően előfordulhat, hogy válasszon ki egy mappát, ahová az összegyűjtött alkalmazásfájlokat menti, valamint adja meg az APK fájl nevét.

Jegyzet: a Ebben a pillanatban ha alfa verziója van telepítve az Android SDK-ban Építőeszközök(változat 28.0.0-rc1), a Gradle építésekor hibát jelez. A probléma megoldásához egyszerűen távolítsa el ezt a verziót az Android SDK-ból.

Ennek eredményeként a beépített APK fájl megjelenik az Ön által megadott mappában, és készen áll az emulátorra vagy egy valódi eszközre történő telepítésre.

Lássuk, mi van a beépített APK-ban. Ehhez a segédprogramot használjuk APK elemző, amely az Android Studio része,

A tömörítetlen APK fájl mérete 21,1 MB, egy tömörített 20,9 MB. Amint az a grafikonon látható, a kötet nagy részét a Unity által hozzáadott, harmadik féltől származó könyvtárak foglalják el. Aztán be eszközök az összeállított jelenetben használt összes erőforrás megtalálható. Fájl osztályok.dexösszesen tartalmaz 89 osztályok és 479 mód.

Sőt, ha megnézed AndroidManifest.xml, az alkalmazás egy tevékenységből áll.

Következtetés

Ez minden. Ebben a cikkben megtanultuk a Unity telepítését és konfigurálását, valamint elkészítettük első Android-alkalmazásunkat.

Hogyan lehet gyorsan és viszonylag egyszerűen létrehozni egy egyszerű játékot vagy alkalmazást Androidra? Erről az alábbi cikkben olvashat, amely a Unity3D motorral való együttműködéssel foglalkozik.

Játszol számítógépes játékokat? Ha igen, akkor az biztos, hogy a következő játék kasszasikerének átadása közben néha olyan gondolatok támadtak, mint: "De itt rosszul tettem volna!". Szeretnél magad is fejlesztő lenni? Akkor ajánlok egy apró, de nagyon szórakoztató "kalandot" ;)

Mi az a motor és miért van rá szükség?

Korábban, az első számítógépek idejében, a játékokat és programokat úgynevezett „hardcore” módszerrel hozták létre. Vagyis a teljes értékű fejlesztéshez elég tapasztalt programozónak kellett lennie, aki alaposan ismeri a programozási nyelvét, és egy egyszerű Jegyzettömbben meg tudja írni szinte a teljes játékot (beleértve a pixelgrafikát és a speciális effektusokat is!). Kevés ilyen ember volt, és nagyon megbecsülték (és még mindig értékelik) ...

Mára a programozás témakörébe való belépési küszöb jelentősen csökkent. Ezt pedig nemcsak a szakirodalom és mindenféle oktatóanyag elérhetősége segíti elő, hanem az egyre egyszerűsödő fejlesztési folyamat is. Manapság már ritkán találkozni igazi "hardcore" emberrel, hiszen megjelentek a meglehetősen kényelmes fejlesztői környezetek, amelyeket "motoroknak" neveznek.

A motor lényege, hogy lehetővé teszi az összes szükséges játékobjektum egyszerűsített vizuális módban történő importálását, virtuális színpadon való elrendezését és az összes paraméter konfigurálását. Vagyis a programozó feladata csak az, hogy helyesen írja meg a játék logikáját!

A munka kényelméért azonban a projekt méretének enyhe (néha akár többszöröse!) növelésével kell fizetnie a régi "hardcore" módon megírt megfelelőjéhez képest. Ez az oka annak, hogy egyes fejlesztők nem szeretik a motorokat, vagy megpróbálnak saját magukat írni, amelyekben csak a szükséges alkatrészeket használják ...

De te és én messze vagyunk az igazi programozóktól :) Ezért készítsünk egy egyszerű játékot Androidra a népszerű és erős Unity3D motor alapján.

Kezdő lépések egy projekttel a Unity3D-ben

Tehát miért választottuk a Unity3D használatát:

  • teljes értékű 2D és 3D játékok létrehozásának képessége;
  • a kész játék összeállításának képessége bármilyen eszközre;
  • a motor viszonylag könnyű vezérlése;
  • a funkcionalitás jó bővíthetősége bővítmények csatlakoztatásával;
  • a játék végső összeállításának viszonylag kis mérete (más motorokhoz képest).

A Unity3D fő ütőkártyája természetesen a sokoldalúság és a multiplatform. Befejezett játék(talán egy kis módosítással) Portolhatod PC-re (Windows, Linux vagy MacOS), Androidra, PlayStationre vagy XBoxra! Ehhez csak magát a motort kell letöltenünk, ami egyébként több mint egy gigabájtot "súlyoz" és a szükséges SDK-kat (ha már a fejlesztést tervezik mobil platformok vagy konzol). Ha Windows-ra szeretne játékot készíteni, akkor nem kell letöltenie semmit, de mivel Androidra készülünk, le kell töltenünk az Android SDK-t (Software Development Kit) is. Azt tanácsolom, hogy töltse le az SDK-t ZIP-archívumban, hogy kényelmesebben dolgozhasson vele.

Ha mindent letöltött, kicsomagolhatja bármelyik Önnek megfelelő Android SDK mappába, majd folytathatja magának a Unity3D-nek a telepítését. Úgy van telepítve, mint bármely más szokásos Windows-program, így a telepítéssel nem lehet probléma. A telepítés után a motor elindul, és először létre kell hoznunk egy új projektet:

Ehhez be kell zárnunk az összes üdvözlő és bevezető ablakot, majd a "Fájl" menüből válasszuk az "Új projekt" lehetőséget. A megnyíló ablakban (lásd a fenti képernyőképet) meg kell adnunk a projekt mentési mappáját (a neve megegyezik a projekt nevével), importálni néhány szabványos függvénykészletet (nincs szükségünk rájuk) és adja meg az üzemmódot. Válassza ki a 2D módot, és kattintson a "Létrehozás" gombra. Ezzel befejeződött a munka előkészítő része :)

Motor interfész és projekthierarchia

A projekt létrehozása után betöltődik a Unity3D munkaterületre:

Ez a munkaterület maga moduláris felépítésű, és több egymásba ágyazott ablakból áll, amelyek tetszés szerint mozgathatók. Én így állítottam be (balról jobbra és fentről lefelé):

  1. Hierarchia ablak – megjeleníti az aktív és inaktív objektumok hierarchikus helyzetét a helyszínen. Alapértelmezés szerint az egyetlen objektum közvetlenül a listában a Fő kamera.
  2. Jelenet ablak – megjeleníti a játék teljes jelenetét és a rajta lévő objektumokat (beleértve a kamerákat, hangokat, textúrákat stb.).
  3. Ellenőrző ablak - megjeleníti a hierarchiában vagy a színpadon kiválasztott objektum összes tulajdonságát, és lehetővé teszi azok szerkesztését, kiegészítését vagy törlését.
  4. Játékablak – megjeleníti a kamera számára látható játékvilágot, és lehetővé teszi a virtuális játék tesztablak méretének pixelben történő kiválasztását. Ezenkívül lehetővé teszi a játékablak teljes méretben történő bővítésének aktiválását (Maximizálás a Playen), és engedélyezi / letiltja a különféle információk megjelenítését a fejlesztő számára.
  5. Projekt és konzol ablakok. A Projekt ablakban navigálhat a projekt erőforrásai között: feltöltött képek, hangok, modellek stb. Ezen az ablakon (helyi menü) keresztül is létrehozhat új, különböző típusú és szkriptű üres játékobjektumokat. A Konzol ablak hibaüzenetek (piros), figyelmeztetések (sárga) és különféle, Ön által kért hibakeresési információk (szürke) megjelenítésére szolgál.
  6. Az Eszközcímke ablak az ellenőrző ablak alsó része, amely a Projekt ablakban kiválasztott objektum vagy fájl előnézetét jeleníti meg.

A fentieken kívül ügyeljen a felső középső három gombra. Lehetővé teszik a projekt elindítását, szüneteltetését (néha hasznos lehet például hibakereséskor, hogy megnézze, mi történik a hierarchiában), és ennek megfelelően kikapcsolhatja.

Létrehozunk egy hangszer szimulátort: ​​az indiai népi dobokat "tabla" néven, ezért a kezdéshez két üres mappát hozunk létre a projektben, amelyben a hangok és a képek lesznek tárolva. Új mappát úgy hozhat létre, hogy a projektnavigátor ablakában (Project) a helyi menüt hívja, és a "Létrehozás" listában kiválasztja a "Mappa" elemet.

Itt érdemes néhány szót ejteni arról, hogyan nevezzék el ezeket a mappákat. Egy egyszerű játéknál, mint amilyen a mi szimulátorunk is, elvileg tetszés szerint "nevezhetők" a mappák, azonban van legalább két név, amit jobb nem használni, mivel azokat a motor lefoglalja. Ezek a nevek Erőforrások és Beépülő modulok. Nagy projekteknél azonnal létrejön az Erőforrások mappa, és már minden játék "tartalék" (képek, hangok, modellek, textúrák és előregyártott elemek) benne van tárolva (almappák szerint rendezve). A Pluginsben, ahogy a neve is sugallja, minden további, harmadik féltől származó funkciókészlet (az úgynevezett "eszközök" (eszközök)) tárolva van, amelyek közül jó néhány található az Asset Store-ban - a Unity3D bővítményeinek tárolójában.

Fájlok importálása és játékobjektumok létrehozása

Új játékprojekt létrehozása előtt célszerű előre elkészíteni a működéséhez szükséges összes fájlt. Esetünkben ezek a fájlok képek és hangok. A legegyszerűbben úgy importálhatja őket egy projektbe, hogy egyszerűen áthúzza őket a kívánt mappába. Kezdjük a képekkel...

Miután a képek megjelennek a Képek mappában, kicsit módosítani kell őket:

A helyzet az, hogy a Unity3D alapértelmezés szerint minőségromlással tömöríti a projekthez hozzáadott összes képet. Ha nincs szükségünk ekkora veszteségre (különösen igaz a HD grafikával rendelkező játékokra), akkor jelöljük ki az egyes képeket, és az Inspector ablakban állítsuk át a "Format" paraméter értékét "Compressed"-ről "Truecolor"-ra a "Default"-ban. " lapon. Lehetséges, hogy módosítania kell a „Maximális méret” paramétert is, ha az kisebb, mint a tényleges képszélesség (alapértelmezett 1024 képpont). Az összes módosítás után ne felejtse el kattintani az "Alkalmaz" gombra az alkalmazáshoz. Ha szükséges, hasonló műveleteket hajtunk végre az összes többi képnél.

Most pedig készítsünk játékobjektumokat a képeinkből. Ehhez egyszerűen húzza a kívánt képet a Hierarchia ablakba. A kép vagy a 3D modell automatikusan játékobjektummá alakul, és a kiindulási koordinátaponton jelenik meg a kamera előtt.

Mindenekelőtt egy háttérképet adtunk hozzá, amelyet teljes képernyőn kell megjeleníteni. Ellenőrizheti, hogy ez így van-e, ha kiválaszt egy kamerát a hierarchia ablakban, és megnézi, hogyan jelenik meg a kerete. A fenti képernyőképen látható, hogy a hátterünk egy része a kamera nézetén kívül marad, ezért ennek a nézetnek a méretét módosítanunk kell a keretet közvetlenül a színpadra húzva, vagy az Inspector ablakban a "Méret" paraméter szerkesztésével. Esetünkben az alapértelmezett (5) értéket 5,4-re kellett módosítanunk.

Ennyi, a kamerához már nem nyúlunk, hanem a többi képet adjuk hozzá, igazítjuk. Hozzáadáskor azt látjuk, hogy némelyik túl nagy a mi játékunkhoz. Fizikailag a grafikus szerkesztőben vagy a motor segítségével csökkentheti őket. Próbáljuk meg az utolsó módszert. Ehhez válassza ki a képet a Hierarchia ablakban, és az Inspector ablakban módosítsa az X és Y koordináták "Scale" értékét 1-ről 0,5-re (vagyis csökkentse felére). Ugyanitt, az átfedések elkerülése érdekében, kívánatos minden játékobjektumhoz (a háttér kivételével) a rétegek nullától eltérő sorrendjét rendelni (Rétegrend):

A játéktárgyak képekből történő előkészítésének utolsó lépése az ütközők „akasztása” lesz rájuk. A Unity3D-ben az ütközőket objektumok közötti interakciódetektorként használják. Azaz valójában egy virtuális shell kerül a képünkre, ami érintéseket tud regisztrálni rajta.

Ütköző hozzáadásához egy objektumhoz jelölje ki azt a Hierarchia ablakban, majd kattintson az "Összetevő hozzáadása" gombra az Ellenőrző ablakban. A megjelenő komponenslistában a Physics 2D-t keressük (a hétköznapi 3D fizika a mi módunkban nem fog működni), és az összes lehetőség közül a "Circle Collider 2D" a legmegfelelőbb számunkra. Őt választjuk. Az objektum körül zöld körvonal jelenik meg, amely az ütköző határait jeleníti meg. Már csak az "Is Trigger" jelölőnégyzet bejelölése marad, hogy ütköztetőnk csak a kattintásokat regisztrálja, és többé ne lépjen kapcsolatba a környező játéktérrel:

Hasonló műveletek megismétlődnek az összes többi objektumnál. Csak a hátterünk különbözik a többi objektumtól. Ehhez egy Box Collider 2D-t alkalmazunk, és a Z pozíciót nullánál nagyobbra állítjuk, hogy az ütközőt és magát a hátteret a háttérbe toljuk (erre később lesz szükségünk).

Munka hanggal

A Unity 3D hangjával első pillantásra minden kissé zavaros. De próbáljuk meg kitalálni sorban :)

Először is az összes hangot át kell húznunk a Hangok mappába, és kicsit módosítanunk kell őket:

Ha az összes hang hangereje kezdetben be van állítva, akkor mindössze annyit kell tennie, hogy kikapcsolja a 3D hangfeldolgozást. A 3D-s játékokban erre a feldolgozásra azért van szükség, hogy szimulálják a hangforrás közeledését, amikor a kamera közeledik hozzá. De 2D-ben erre nincs szükségünk, ezért sorra választunk ki minden hangot, és töröljük belőle a "3D Sound" jelölést.

Most elkezdhetjük a hangok hozzáadását a játékobjektumokhoz. Ehhez sorra kell kiválasztanunk az egyes gombokat, és hozzá kell adnunk egy új "Audio Source" komponenst az "Audio" részből. Az összetevő hozzáadása után válassza ki a megfelelő "Audio Clip" gombot, és törölje a jelölést az alapértelmezés szerint aktív "Play On Awake" jelölőnégyzetből (lejátszás, amikor megjelenik):

Ha minden hang a megfelelő gombokhoz van kötve, itt az ideje a szórakoztató résznek - a forgatókönyvírásnak...

Első forgatókönyv

Mielőtt elkezdené az első szkriptünk elemzését, érdemes néhány szót ejteni magáról a Unity 3D szkriptrendszeréről.

A Unity lehetővé teszi, hogy egyszerre három nyelven írjon kódot: JavaScript (pontosabban a UnityScript kissé módosított változata), C # és Boo. Számos könyvben és útmutatóban megtalálható az a vélemény, hogy a kezdők számára a Unity programban való szkriptelést könnyebb elsajátítani példaként a JavaScript használatával. Ez a nyelv azonban nem olyan kényelmes, mint a többi, és a jövőben nagy valószínűséggel újra kell tanulnia. Ezért jobb azonnal a C # megtanulásával kezdeni (a Boo is jó, de kevés a tananyag rajta).

Most arról, hogy hova kell írni a kódot. A Unity 3D alapértelmezett kódszerkesztője a MonoDevelop IDE. Ennek a fejlesztői környezetnek az az előnye, hogy tippeket tartalmaz a szabványos metódusok, osztályok és függvények gyors beviteléhez, valamint szintaktikai ellenőrző rendszert is tartalmaz. Számomra azonban a terjedelmesség és a nagy erőforrás-intenzitás volt a hátrányom. Szerencsére a Unity beállításaiban bármit be lehet állítani szövegszerkesztőnek, így "akasztottam" magamnak a könnyű és funkcionális Notepad ++-t (majdnem minden példa látható lesz benne).

És az utolsó. Természetesen a motor összes bonyolultságának elsajátításában referenciaanyagok nélkül nem megy messzire, ezért itt található néhány ésszerű internetes forrás lista a Unity 3D témájában:

  • http://docs.unity3d.com/ru/current/Manual/UnityManualRestructured.html - hivatalos kézikönyv a motorhoz részleges orosz nyelvű fordítással (a közelmúltban jelent meg, és néha instabil);
  • http://docs.unity3d.com/ru/current/ScriptReference/index.html - hivatalos angol nyelvű szkriptelési kézikönyv;
  • http://unity3d.ru/distribution/index.php - orosz fórum Unity 3D fejlesztők számára;
  • http://habrahabr.ru/post/141362/ - egy leckesorozat a Habrahabr háromdimenziós játékok létrehozásáról;
  • http://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx – a Microsoft hivatalos C# hivatkozása oroszul.

Nos, hogy ne húzza sokáig, azt javaslom, hogy azonnal készítse el az első forgatókönyvet. Szkriptek alatt, ha sok van belőlük, érdemes külön mappát kijelölni, de a játékunk egyszerű lesz, így közvetlenül a projekt gyökérmappájában tudunk szkriptet készíteni. Ehhez hívja meg a helyi menüt a Projekt ablakban, válassza ki a Létrehozás listát, és kattintson a "C # Script" gombra. Adjunk nevet az új szkriptünknek, például Hangok, és nyissa meg dupla kattintással. A szabványos Frissítés és Start metódusok eltávolítása, majd a szükségesek regisztrálása után a következő szkriptet kapjuk:

Ha nem konfigurálta újra a szerkesztőt, akkor a szkriptünk megnyílik a MonoDevelopban. Nézzük a szerkezetét...

Valójában minden C# szkript három fő részből áll:

  1. A legfelül azok a könyvtárak vannak felsorolva, amelyeket a szkript működéséhez csatlakoztatni kell (például a „Unity.Engine használatával” magát a motort kapcsolja össze, a „System.Collections használatával” pedig egy számot tartalmazó könyvtárat beépített osztályok száma, hogy a szkript különböző rendszerekben működjön).
  2. Osztály és változó deklaráció. A C#-ban nem létezik egy szkript fogalma, mint olyan. Ehelyett az "osztály" fogalmát használják, amely számos módszert és függvényt tartalmaz. Bár valójában a Unity 3D kontextusában ez majdnem ugyanaz :) A legfontosabb dolog, amit meg kell jegyeznünk, hogy az osztálynévnek meg kell egyeznie azzal a névvel, amelyet a szkriptnek adtunk. A C#-ban a változók sajátossága, hogy be kell őket gépelni (kivéve az ideigleneseket, amelyeket magában a szkriptben deklarálunk). Ez a gyakorlatban azt jelenti, hogy a változóhoz meg kell adni a hozzáférési szintet (privát vagy publikus) és típust (int, float, bool vagy ahogy a szkriptben is megvan AudioClip), ugyanakkor megadhatja a változót vagy azonnal megadhat egy értéket.
  3. Módszerek és függvények halmaza. A metódus a C#-ban szinte minden olyan függvény, amely bizonyos műveleteket hajt végre. Elvileg a Unity 3D szakirodalmában függvényeknek hívják, de ha a C #-ről, mint külön programozási nyelvről beszélünk, akkor ezek végül is módszerek :). A Unity tiszta függvényei például szabványos hangkimeneti funkciók, grafikus felület elemek rajzolása stb., amelyeket a metódusokon belül használnak.

A szkript szerkezetének ismeretében könnyen megérthető a jelentése, ami a következőkben csapódik le... A Sounds osztályban (script) 9 AudioClip típusú változót deklarálunk azokkal a nevekkel, amelyekre szükségünk van a kényelem érdekében. megkülönböztetve őket. Feltétlenül nyilvánossá tesszük őket (a magánjellegűek nem jelennek meg a szerkesztőben, és hangokat kell rájuk "akasztanunk" a szerkesztőn keresztül). Ezután a szkript törzsében a szabványos "void OnMouseDown ()" metódust használjuk. Korábban csak az egérkattintás feldolgozásáért volt felelős, de az új verziókban az érintőképernyő érintéseként is értelmezik. Ebben írjuk azokat a feltételeket, amelyek alapján ellenőrizzük a lenyomott ütköztetők nevét, és ha valamelyik megnyomását észleljük, akkor a megfelelő hangot adjuk ki (a szabványos audio.PlayOneShot(); függvényt használjuk).

A kód írásakor ügyeljen arra, hogy minden nyitó és záró zárójelet tartalmazzon, különben folyamatosan hibajelentéseket fog kapni a Console-ban, és egyáltalán nem tudja futtatni a projektjét! Ügyeljen a nagybetűk használatára is a metódusok és függvények nevében. Gyakran ezek okozzák a hibákat is. És természetesen figyeljen minden jelre (pont, kettőspont és zárójel), röviden a nyelv szintaxisára. Eleinte nehéz lesz, de idővel a nulláról kezdesz írni, hibák nélkül!

Amikor a szkript készen áll, jelölje ki, és az Inspector ablakban rendeljen minden változóhoz más hangot. Most már csak alkalmaznunk kell a forgatókönyvünket a jelenet objektumaira. Ennek legegyszerűbb módja, ha a szkriptet közvetlenül a kívánt játékobjektumra húzza a Hierarchia listában:

Ha a szkriptet megfelelően húzta, akkor meg kell jelennie az Inspector ablakban azon objektum mellett, amelyre húztuk. Ennek megfelelően húzzuk a szkriptet az összes objektumra, amelynek meg kell szólalnia a játékban, és megpróbálhatjuk futtatni. Ha rákattint játékgombjainkra, most végre megszólal a megadott hang!

Bevezetés a GUI-ba

Nálunk elvileg már működik a Játék, de valahogy túl "kopasz". Valami hiányzik belőle... Vagy legalább egy felirat a névvel, ami előttünk van! Más szóval, valamilyen érthető felhasználói felületet kell megvalósítania.

Valójában a GUI az angol rövidítése. "Grafikus felhasználói felület", azaz grafikus felhasználói felület. Hagyományosan olyan összetevőket tartalmaz, mint:

  • gombok;
  • ablak;
  • szöveges területek;
  • jelölőnégyzetek és/vagy rádiógombok;
  • csúszkák (görgetősávok) stb.

A Unity 3D-ben Mindez (és még ennél is több) teljes mértékben jelen van. A lényeg, hogy megtanuld használni! Nézzük meg, hogyan tud a Unity grafikus felhasználói felülete egyszerű címsort készíteni.

Ehhez hozzon létre egy új Interface nevű szkriptet, és módosítsa az alábbiak szerint:

Gondosan fontolja meg a képernyőképen látható szkriptet. Itt csak egy GUIStyle típusú nyilvános változót írunk, ami új számunkra. Ezzel a típussal vizuálisan módosíthatja azon elemek megjelenését, amelyekhez ez a stílus hozzá van rendelve. A stílusok akkor hasznosak, ha sok azonos típusú interfészelem (például gombok) van, de ezeknek eltérő megjelenésűnek kell lenniük.

Ezután létrehozunk egy gombot ("GUI.Button"), amelynek szintaxisa a következő: feltétel - 4 koordináta (vízszintes behúzás a bal széltől, függőleges behúzás a felső éltől, szélesség, magasság) - látható szöveg idézőjelben és tovább , opcionálisan stílusjelzés. A szükséges funkciók a gombfeltételek közé vannak írva. Esetünkben regisztráltuk az átállást a fejlesztői oldalra ("Application.OpenURL(");").

A GUI-szkriptek bármilyen játékobjektumról működhetnek, de általában azt tanácsolják, hogy „akasztják” őket a kamerára, amit úgy teszünk meg, hogy a szkriptet ráhúzzuk a fő kamera objektumra. Most, ha a Hierarchia ablakban kiválasztjuk, akkor az Inspector ablakban láthatjuk majd stílusunk publikus változóját, amelyet kibontva teljes hozzáférést kapunk ennek a stílusnak a beállításaihoz!

Bármilyen helyzetben megadhatjuk a háttér szövegszínét és textúráját (a gombhoz regisztrálni kell a három opcióját (Normál - normál nézet, Lebeg - lebegtetéskor és Aktív - kattintáskor), be kell állítani a kitöltést és be kell állítani a betűtípust. Alapértelmezés szerint a Unity 3D-ben az egyetlen elérhető betűtípus az Arial, azonban bármilyen más betűtípust manuálisan betölthet a projektbe, és alkalmazhatja a "Font" mezőben, minden kapcsolódó paraméter beállításával.

Ami érdekes és egyben nem túl kényelmes, hogy a GUI elemek nem jelennek meg a színpadon, amíg el nem kezdjük a projektet, így az egyes elemek paramétereinek beállítása sok időt vehet igénybe. Futtassuk a projektet, és nézzük meg, hogyan fog kinézni a fent létrehozott gombunk:

Az interfész módosítása feltétel és statikus változók szerint

Sokat tettünk már, de mindig van hova fejlődni :) Ezért utolsó példaként javaslom egy súgóablak létrehozását, amellyel a normál fejlesztők általában ellátják játékaikat és alkalmazásaikat. Ehhez adjunk hozzá egy képet egy ilyen gombhoz kérdőjel formájában a képekkel ellátott mappához, és készítsünk belőle játéktárgyat. Akassunk rá egy ütközőt, és írjunk egy forgatókönyvet névvel, például "Súgó" a következő tartalommal:

Ebben a szkriptben két változónk van. Az első változó határozza meg a felszínt, amelyet az ebben az osztályban leírt összes interfészelemhez használni fog. A fentebb tárgyalt stílusoktól eltérően a skinek lehetővé teszik, hogy ne csak az egyes elemek megjelenését módosítsa, amelyekhez hozzá vannak rendelve, hanem egy bizonyos típus összes elemének egyszerre. Ezenkívül a stílusokkal ellentétben a felszínek nincsenek hozzárendelve az elemekhez, hanem azonnal deklarálódnak a teljes metódushoz, és addig működnek, amíg egy másik felszínt nem deklarálnak. Emlékeztetni kell arra is, hogy a skinek nemcsak változóként léteznek, hanem mint változók is egyedi fájlokat. Ezért a felszín deklarálása előtt azonnal létre kell hoznia azt a "Projekt" ablakban a helyi menüből: "Létrehozás" - "GUI Skin".

A második változónk egy logikai (vagy egyébként logikai változó). Csak két értéke lehet: "true" (igaz) vagy "false" (hamis). Bináris jellege miatt egy ilyen változó tökéletes mindenféle kapcsoló megvalósítására. Esetünkben ez lesz a felelős a játékunkat leíró szöveg megjelenítéséért.

Ha azonban alaposan megnézi, észre fogja venni, hogy az utolsó változónak van egy csodálatos paramétere - "statikus". Ha ezt a paramétert a változókhoz adjuk, akkor azokat statikussá teheti, és más szkriptekből is elérheti őket!

De térjünk vissza a kód többi részéhez. Az itt már ismert "void OnMouseDown()" metódus az "isVisible" változó kapcsolójaként szolgál egy egyszerű feltétel segítségével. A feltétel után azonban van egy másik funkció is. Ez a függvény ("Debug.Log();") arra szolgál, hogy "menet közben" adja ki a konzolra a szükséges változók értékeit (ezeket idézőjelek nélkül adjuk meg zárójelben). Amint láthatja, egy függvényen belül kombinálhat megváltoztathatatlan szöveget (idézőjelek között) és változókat (idézőjelek nélkül). A lényeg az, hogy az összes adat között legyen egy „+” jel.

A szkript szövegében továbbá van egy módszerünk az interfész megrajzolására ("void OnGUI()()"), amelyen belül egy új felszín ("GUI.skin = HelpSkin;") és egy új felszín deklarációját látjuk. GUI.Box típusú interfész elem. A gombokkal ellentétben a doboz inaktív elem, és általában különféle szöveges vagy grafikus adatok megjelenítésére szolgál.

Ügyeljen arra, hogyan állítjuk be a doboz elhelyezését. Itt az összes érték nem közvetlenül, hanem matematikai kifejezések segítségével van megadva, ami valójában a "folyékony elrendezés" analógja a webfejlesztésben. A probléma az, hogy amikor a grafikus felület elemeinek pontos méretét adjuk meg különböző képernyőfelbontásoknál, azok nem fognak alkalmazkodni, és túl kicsik, vagy éppen ellenkezőleg, nagyok lehetnek. A motor következő verziójában a fejlesztők azt ígérik, hogy adaptívvá teszik a GUI-t, de egyelőre torzítanunk kell :(

A sikerhez vezető út utolsó lépése bőrünk testreszabása lesz. Megadjuk a skin fájlt a script változóban, majd a projekt ablakban kiválasztjuk ezt a fájlt. Más fájlokhoz hasonlóan a bőrbeállítások is megjelennek az Inspector ablakban. Itt keressük a módosítható elemet (esetünkben Box), nyissa meg és állítsa be a fent tárgyalt stílushoz hasonlóan:

Annak ellenőrzéséhez, hogy a szkriptünk megfelelően működik-e, futtassuk a projektet, és próbáljunk meg a súgó gombra kattintani:

Most már minden működik, de nem mindig kényelmes megnyomni a súgó gombot, hogy elrejtse a leírást. Szokásosabb az értesítéseket bármelyikbe beledugni szabad hely mint a gombokra célozni. És itt már csak azt kell használni, hogy az "isVisible" változót statikussá tettük, valamint a háttérképre akasztott ütköztetőt...

Térjünk vissza a legelső forgatókönyvünkhöz ("Hangok"), amely nyomon követhető gombot megnyomja a hangok lejátszásához. Elég lesz, ha csak egy sort írunk bele (pontosabban a "void OnMouseDown ()" metóduson belül:

if (this.name != "HelpButton")(Help.isVisible = false;)

Ezzel a sorral egy feltételt állítunk be: ha a lenyomott ütköző neve nem egyezik meg a súgó gomb nevével, akkor a "Help" szkriptben az "isVisible" változó értéke "false" lesz. Csak az szükséges, hogy az "isVisible" változóban feltétlenül legyen "static" postscript, különben hibát kapunk.

Most, indításkor látni fogjuk, hogy a súgó ablakunk bezárul, ha nem csak a jobb felső sarokban lévő gombra kattintunk, hanem a képernyő bármely szabad részének megérintésekor is. Csak annyit lehet javítani, hogy az ablak elrejtőzik, ha rákattint... Ez lesz a "házi feladatod";) Csak annyit tudok mondani, hogy a GUI dobozt át kell cserélni egy hasonló kialakítású gombra, ismét , a beállító bőrrel és egy olyan funkciót ír elő, amely megváltoztatja az "isVisible" változót. Minden, maradj csendben :)

A játék összeállítása és a projekt mentése

Végre nálunk minden működik! Ez azt jelenti, hogy ideje elmenteni a játékunkat, és valódi eszközön tesztelni. És ehhez le kell fordítani egy futtatható fájlba (Windows-hoz például EXE-ben, Androidhoz pedig APK-ban).

Ha PC-re akarsz játékot fordítani, akkor nem kell semmilyen előzetes beállítást megadnod. Android esetén azonban először csatlakoztatnia kell az Android SDK-t, amelyet a legelején letöltöttünk. Ez egyszerűen megtehető: lépjen a "Szerkesztés" menübe, hívja a "Beállítások" elemet, és a megnyíló ablakban lépjen a "Külső eszközök" fülre. Itt az "Android SDK helye" sort keressük, és ebben jelezzük az SDK-val kicsomagolt archívum elérési útját (lásd az alábbi képernyőképet). Egyébként itt az alapértelmezés szerint aktív MonoDevelop szörnyű szövegszerkesztőt is lecserélheted kedvencedre :)

És most eljött az igazság pillanata! Lépjen a "Fájl" menübe, és keresse meg ott a "Build Settings" elemet. A megnyíló ablakban azonnal fel kell adnunk jeleneteket az összeállításhoz. Ha csak egy jelenet van (mint a projektünkben), akkor elegendő az "Aktuális hozzáadása" gombra kattintani. Ha több van belőlük, akkor mindegyiket meg kell nyitnia, és ugyanúgy hozzá kell adnia a jelenetek listájához, majd húzással állítsa be a kívánt sorrendet:

Következő lépésként válasszuk ki a build platformot (Androidra tervezünk játékot, ami azt jelenti, hogy azt választjuk), és kattintsunk a lenti "Player Settings" gombra. Az Inspector ablak számos beállítást nyit meg, amelyek közül néhány kötelező vagy nagyon kívánatos. A beállításlista tetején kívánatos feltüntetni a fejlesztő cég, a program és annak ikonját (Cégnév, Terméknév és Alapértelmezett ikon).

Alul, az „Egyéb beállítások” részben két kötelező paraméter található: „Csomagazonosító” és „Csomagverzió”. Az alapértelmezett verzió 1.0, de az azonosítót kézzel kell létrehozni, és lehetőleg egyedinek kell lennie. Három részből kell állnia, amelyeket pontok választanak el egymástól: a fenntartott "com" szóból, majd a fejlesztő cég nevéből, és a végén magának az alkalmazásnak a neve.

Az összeállítás többi beállítását saját belátása szerint módosíthatja, vagy egyáltalán nem módosíthatja. A lényeg, hogy most már el is indulhat az összeállítás. Ehhez csak kattintson a "Build" gombra a "Build Settings" ablakban, és várja meg, amíg a program ad nekünk egy kész alkalmazást APK fájlba csomagolva :)

Következtetés

Ezzel véget is értünk a legegyszerűbb Android-alkalmazások létrehozásáról szóló lecke-áttekintésünknek. Hogy megismételhesse mindazt, amiről beszéltünk, a cikk végén adok egy linket az archívumhoz, amely a játék összes erőforrását külön mappaként tárolja (ha mindent a semmiből akar csinálni), és egy unitypackage kiterjesztésű fájl. Ez utóbbi lehetővé teszi, hogy a teljes projektet egyszerre importálja a Unity-be, beleértve a függőségeket stb.

Projektünk (és mellesleg az Internetről vagy az Eszközboltból letöltött pluginok) importálásához menjen az "Eszközök" menübe, válassza ki a "Csomag importálása" elemet, és abban az "Egyéni csomag", majd adja meg a fájlunk elérési útját, és nyomja meg az "Importálás" gombot. A projektről egyébként teljes biztonsági másolatot készíthet, ilyen egységcsomagba mentve, ugyanebből a menüből ("Eszközök"), az "Export Package" menüpontra kattintva.

Úgy tűnik, hogy minden :) Mint egy személy, aki a semmiből sajátította el a Unity 3D-t, a cikkben megpróbáltam válaszolni a maximális számú kérdésre, és kiemelni a motorral való munkavégzés kezdetben felmerülő főbb árnyalatait. De lehet, hogy valakinek ez nem lesz elég, ezért ha kérdése van, forduljon hozzám akár közvetlenül levélben, akár a fórumon: amiben tudok, segítek!

Sok sikert és sikeres megvalósítást kívánok minden projekthez!

P.S. A cikk szabadon másolható és idézhető, feltéve, hogy a forrásra mutató nyílt aktív hivatkozást feltüntetik, és Ruslan Tertyshny szerzőségét megőrzik.