Vytváření aplikací pro Android. Spustit vývoj pod Android vytváří 3D hra pro jednotu Android

  • 25.04.2021

Jednota je motor, na kterém je většina moderních her postavena na různých platformách. Prostřednictvím motoru, to vlastně vytváří hry zaměřené na spuštění na počítačích (Windows, Linux, MacOS), mobilní telefony, počítače tabletu (Android, IOS) a dokonce i herní konzole PlayStation, Xbox, Nintendo.

Jak vytvořit hry v jednotě?

Základem jednoty je konceptem orientovaný. Ve skutečnosti, jakákoliv hra sestává z hmotnosti objektů zředěných s dalšími komponenty. Například během tvorby plošinove vytvoříme gameObject, který navíc připojí grafickou komponentu, která je zodpovědná za zobrazení znaku a komponenty řízení, poskytuje ovládací prvek znaků myši, klávesnicí, joystickem nebo dotykovým displejem . Motor neuvádí omezení počtu podobných modulů. Můžete přidat tolik komponent do gameObject podle potřeby. Veškerá práce na motoru jsou postaveny na vytvoření gameObject a nanášení vhodných komponent.

Nováček mohou zavádět viditelnou jednoduchost procesu, i když to není. Chcete-li vytvořit jedinečnou a populární hru bude muset napsat spoustu komponent od nuly. Přesněji řečeno, v prostředí jednoty se nazývá skript. Jazyk tvorby jazyka je C #, ale také částečně používaný JavaScriptem a BOO (Oříznuta možnost Python). Vytvořit vlastní komponenty není snadné, můžete dokonce říci - to je složitý postup přímo vázaný na klasické programování. Bez dostupnosti dostatečné úrovně znalostí v programování bude muset být nezletilá.

Podporované platformy

Mnoho velkých projektů preferuje jednotu díky obrovskému seznamu platforem kompatibilních s motorem. Hotová aplikace je opravdu spuštěna na každém počítačovém operačním systému, populární mobilní platformy a SmartTV. Co říct, dokonce i prohlížeč hry a aplikace pro konkrétní platformy ( jako Tizen OS.) S výhodou vyvinuté na jednotě.

Nicméně, zde není tak hladký. V případě potřeby můžete psát konkrétní algoritmy na základě nízkoúrovňového kódu, pod stejným Androidem, který musíte mít důkladné znalosti Java.

Totéž platí pro iOS. Dalším znakem IOS je to, že je to možné pouze z počítače nebo tabletu z Apple. V nepřítomnosti MacBooku nebo podobného zařízení, vydání hry rychle stánky a jednota není vůbec, Apple sám ukládá podobné omezení. Výstup je jednoduchý: Pokud existuje iOS-vývoj v plánech, měli byste zvolit vhodné zařízení pro montáž předem.

Jak a kde rozvíjet hru na motoru?

Dlouhodobý proces vývoje her lze provést jak v systému Windows i Mac OS X. Již existují verze editoru pod Linuxem, ale ještě není nutné počítat s jejich stabilním prací. Většinu času vytvořit hru, vývojář se provádí uvnitř editoru jednoty. Stále musíte napsat spoustu času psát kód skriptů, můžeme ho vytvořit buď ve standardním monodevelopu, nebo v jakémkoli redaktoru vývojáře třetích stran. Nyní aktivně používejte Visual Studio, stejně jako vznešený text, ale pouze s řádným ladicím.

Vývoj mobilních aplikací je jedním z nejziskovějších tříd v počítačovém průmyslu. Vytvoření hry na Android stojí několik set nebo tisíce dolarů a zisk může dosáhnout milionu dolarů. V tomto ohledu má mnoho lidí zájem o vývoj aplikací pro telefon. V tomto článku se naučíte, jak vytvořit hru na Android od nuly přes počítač, který motor a návrhář je lepší vybrat.

Žádné úspěšné herní náklady bez krásné grafiky, takže vytvoření designu je jedním z nejdůležitějších fází vývoje. Design OS Android je implementován pomocí "Designového dokumentu" nebo Dzepock. Musíte začít vytvářet hračku z jeho podrobné studie. Soubor obsahuje:

  1. Objektové modely;
  2. Funkční specifikace;
  3. Herní obsah;
  4. Rozhraní.

Zvažte každou z položek podrobněji.

Objektové modely

Toto je informace o funkčnosti každého předmětu. Objektové modely jsou zodpovědné za možnost nákupu a prodejů objektů, jakož i pro zlepšení herních charakteristik postav.

Funkční specifikace

Zde je popsána herně, hlavními rysy každého znaku. Také zde je popis vlastností herních předmětů - zbraně, Aidheeks, Armor a další. Faktorní specifikace jsou ve skutečnosti pravidla, pro kterou se hra dojde. Čím lepší bude tato sekce pracuje, tím jednodušší bude vytvořit vysoce kvalitní android hru.

Herní obsah

Toto je náplň textové hry. Popisuje dialogy znaků a jakou zbraň může být poškozen, kolik zdraví vzlétne, jaké vlastnosti se zvýší při používání různých zařízení. Obsahuje také podrobný popis každého předmětu.

Rozhraní

Rozhraní je, jak bude uživatel komunikovat se hrubou. Zahrnuje tlačítka, se kterou můžete spravovat znak a oddíly menu: například přehrávání, účet, nastavení, top přehrávače, pomoc. Pokud nemáte zkušenosti s tvorbou aplikací pro Android, před vytvořením vlastního stahování z hraje na trh a analyzovat populární hry a přesunout nejlepší řešení projektu.

Herní engine

Základem jakékoli hry je motor. Tento software, který vám umožní rozvíjet a spustit. Obsahuje celou řadu programů, včetně vykreslovacího motoru, fyzického motoru, zvuku, animace a mnohem více. Pro usnadnění procesu psaní programů vytváří vývojáři třetích stran své vlastní hry speciálně pro aplikace Android.

Každý z nich nabízí různé funkce: Některé jsou určeny pro 3D, jiné pro 2D, multiplatform může být podporován. Existuje obrovské množství těchto motorů, ale pokud jste nová, je lepší vybrat jednu z nejoblíbenějších, protože budou přítomny všechny potřebné funkce.

Udk.

Točivý moment 2d / 3D

Co je herní návrhář?

Návrhář je program, který kombinuje herní motor a integrované vývojové prostředí. Designer dělá vývojový proces k dispozici lidem, kteří nemají programovací dovednosti. Někteří návrháři vám umožní vytvářet hry některých žánrů, jiní mají maximální funkčnost, ale stojí mnohem více peněz. Pro začátečníky tvůrce mobilních aplikací je volba návrháře jedním z nejododpornějších momentů, protože osud budoucí aplikace bude záviset na svých schopnostech.

Návrhář vám umožňuje vytvářet hry různých žánrů pro Windows, Android a IOS. Nabízí velký výběr hotových lokalit, objektů, postav a zvukových dekorací, takže vytvoření první hry Android nemá moc času. Uživatelé obeznámeni s programovacími jazyce JS a C ++ mohou používat vestavěný GML. Jedinou nevýhodou je, že program není přeložen do ruštiny.

Závěr

Vytvoření hry pro Android není zcela jednoduchý, ale velmi ziskový podnik. Pokud se rozhodnete rozvíjet hru a vydělat na to, první pracovat s myšlenkou. Dále napište "Design Document" a rozhodněte se na herní engine, který může většinou odhalit svůj potenciál. Poté můžete pokračovat přímo na vytvoření aplikace v konstruktoru.

Video

Chcete-li seznámit podrobněji s procesem vytváření her Android, přečtěte si sérii videí na této lekci.

Jak rychle a relativně snadné vytvořit jednoduchou hru nebo aplikaci pro Android? To je o tom čten v níže uvedeném článku, kde je zvažována práce s motorem UNITY3D.

Hrajete počítačové hry? Pokud ano, pak, v procesu projíždění příští hry Blockbuster, někdy měli myšlenky jako: "Ale tady bych udělal špatně!" A chcete navštívit roli developera? Pak vám doporučuji malý, ale velmi zábavný "dobrodružství";)

Jaký je motor a proč je to potřeba?

Dříve, během dnů prvních počítačů, her a programy byly vytvořeny tzv. "Hardcore" metodou. To znamená, že pro plnohodnotný vývoj bylo nutné být spíše zkušený programátor, který důkladně zná svůj programovací jazyk a může téměř celou hru (včetně grafiky pixelů a speciálních efektů!) Napište v jednoduchém notebooku. Tam bylo málo takových lidí a byli velmi oceňováni (a teď a teď) ...

Dnes, prahová hodnota vstupu v předmětu programování se občas snížil. A to přispívá nejen k dostupnosti literatury a všech druhů tréninkových materiálů, ale stále více zjednodušujícího vývojového procesu. V současné době je vzácné setkat se s reálnými "hardcorery", protože se objevily docela pohodlné vývojové prostředí, které byly nazývány "motory".

Podstatou motoru je, že umožňuje v zjednodušeném vizuálním režimu importovat všechny potřebné herní objekty, umístit je na virtuální scénu a nakonfigurujte všechny své parametry. To znamená, že úkol programátor zůstane pouze správně psát herní logiku!

Nicméně, pro pohodlí práce je nutné zaplatit určitý nárůst o velikosti projektu (někdy i několikrát!) Ve srovnání s jeho analogem napsanými starým "hardcore" metodou. Je to pro tuto část vývojářů motoru se nelíbí nebo se snaží napsat své vlastní, ve kterém jsou použity pouze ty nezbytné komponenty ...

Ale my jsme daleko od vás do tar-programátoři :) Proto budeme vytvářet jednoduchou hru pro Android na základě populárního a výkonného motoru Unite3D.

Začínáme s projektem v Unite3d

Proč jsme se rozhodli použít Unity3D:

  • schopnost vytvářet plnohodnotné 2D a 3D hry;
  • schopnost sestavit hotovou hru pro všechny zařízení;
  • relativní jednoduchost ovládání motoru;
  • dobrá rozšiřitelnost funkčnosti v důsledku zásuvných modulů;
  • relativně malá velikost konečného shromáždění hry (ve srovnání s jinými motory).

Hlavní karta Trump je Unite3d, samozřejmě, jeho všestrannost a multiplatform. Ready Game (Snad s menšími úpravami) Můžete portu, a to i na PC (s Windows, Linux nebo MacOS), alespoň na Android, alespoň na PlayStation nebo Xbox! K tomu budeme muset stáhnout pouze samotný motor, který mimochodem, "váží" více gigabajtů a nezbytný SDK (pokud je plánován vyvíjet mobilní platformy nebo konzoly). Pokud chcete udělat hru pro Windows, nemusíte si stáhnout cokoliv jiného, \u200b\u200bale protože budeme dělat hru pod Android, pak budeme muset stáhnout více Android SDK (Software Development Kit). Doporučuji vám stáhnout SDK v archivu ZIP pro větší pohodlí práci s ním.

Když je vše načteno, můžete rozbalit jakoukoliv pohodlnou složku Android SDK vhodný pro vás, a potom pokračujte na instalaci samotného UNITY3D. Je nainstalován, stejně jako jakýkoli běžný program pod Windows, takže by neměly být žádné problémy s instalací. Po instalaci motoru začne a musíme nejprve vytvořit nový projekt:

Chcete-li to provést, budeme muset zavřít všechny přivítání a úvodní okna a poté vyberte možnost "Nový projekt" v menu "Soubor". V okně, které se otevře (viz Screenshot výše), budeme dáni, abychom určili složku Uložit projektu (jeho název bude odpovídat názvu projektu), import některých standardních sad funkcí (nepotřebujeme IT) a specifikujeme režim operace. Jako režim vyberte 2D a klepněte na tlačítko "Vytvořit". Tato připravená část práce dokončena :)

Projektový motor a hierarchie Rozhraní

Po vytvoření projektu bude načten do pracovního prostoru UNITY3D:

Tento pracovní prostor má modulární strukturu a skládá se z několika vnořených oken, které lze přesunout, jak jste spokojeni. Mám to nakonfigurovat (zleva doprava a shora dolů):

  1. Okno hierarchie zobrazuje hierarchickou polohu aktivních a neaktivních objektů na scéně. Ve výchozím nastavení je jediný objekt umístěný okamžitě v seznamu je fotoaparát (hlavní fotoaparát).
  2. Okno scény zobrazuje celou herní scénu a objekty na něm (včetně kamer, zvuků, textur atd.).
  3. Okno Inspektor zobrazuje všechny vlastnosti hierarchie vybrané v hierarchii nebo na scéně objektu a umožňuje jim upravovat, doplnit nebo mazat.
  4. Okno hry - zobrazuje herní svět, který je viditelný pro fotoaparát a umožňuje si vybrat velikost virtuálního testovacího okna hry v pixelech. Také umožňuje aktivovat vypouštění maximalizace na přehrávání a zahrnout / zakázat zobrazení různých informací pro vývojáře.
  5. Projektová a konzolová okna. Okno projektu se používá k navrhování prostředků projektu: načtené snímky, zvuky, modely atd. Také pomocí tohoto okna (kontextové menu) můžete vytvořit nové objekty prázdných her různých typů a skriptů. Okno konzoly slouží k zobrazení chybových zpráv (červená), varování (žlutá) a různá, požadovaná informace ladění (šedá).
  6. Okno štítků aktiv je spodní část okna inspektora, které zobrazuje náhled objektu nebo souboru vybraného v okně projektu.

Kromě výše uvedeného, \u200b\u200bvěnujte pozornost na tři tlačítka v horní části centra. Umožňují vám spustit projekt, pozastavit (někdy užitečné při ladění, abyste viděli, co se děje v hierarchii, například), a proto vypněte.

Vytvoříme simulátor hudebního nástroje: indické lidové bubny nazývané "tabla", takže začít, vytvoříme dva prázdné složky v projektu, ve kterém budou uloženy zvuky a obrázky. Můžete vytvořit novou složku voláním kontextového menu v okně Project Navigator (Project) a výběrem "Složka" v seznamu "Vytvořit".

Zde to stojí za to říct několik slov o tom, jak zavolat tyto složky. Pro jednoduchou hru, stejně jako náš simulátor, v zásadě mohou být složky "volání", jak se vám líbí, nicméně, existují alespoň dvě názvy, které jsou lepší nepoužívat, protože jsou vyhrazeny motorem. Toto je názvy zdrojů a pluginů. Ve velkých projektech se složka zdrojů okamžitě vytvoří a všechny herní "náhradní díly" (obrázky, zvuky, modely, textury a prefabáty) jsou uloženy již v něm (třídění podle podsložek). V pluginech, následujícím způsobem, všechny další sady funkcí třetích stran jsou uloženy (tzv. "Aktiva" (aktiva)), které jsou na obchodě Asset poměrně hodně hodně - úložiště prodloužení pro Unity3d.

Importovat soubory a tvorba herních objektů

Před vytvořením nového herního projektu je vhodné připravit všechny soubory pro jeho provoz předem. V našem případě jsou tyto soubory obrázky a zvuky. Import je do projektu je nejjednodušší způsob, jak přetáhnout do požadované složky. Začněme s obrázky ...

Poté, co obrázky zobrazí v našich snímků složce, měly by být nakonfigurovány trochu:

Skutečnost je, že ve výchozím nastavení UNITY3D všechny snímky přidané do projektu stlačuje se ztrátou kvality. Pokud nepotřebujete takovou ztrátu (zvláště relevantní pro hry s HD grafikou), pak bychom měli vybrat každý obrázek a v okně inspektora změnit hodnotu parametru "Formát" s "komprimovaným" na "TrueColor" v " Výchozí karta ". Můžete také také změnit parametr "Max Size", pokud je menší než skutečná šířka obrazu (ve výchozím nastavení - 1024 pixelů). Po všech změnách nesmíte zapomenout na tlačítko "Použít" pro použití. Podobné akce, v případě potřeby pro všechny ostatní obrázky.

Nyní, pojďme vytvořit přehrávání objektů z našich obrázků. Chcete-li to provést, přetáhněte požadovaný obrázek do okna hierarchie. Obrázek nebo 3D model bude automaticky převeden na objekt objektu hry a zobrazí se ve výchozím bodu souřadnice před kamerou.

Nejdříve jsme přidali obrázek na pozadí, který by měl být zobrazen na celé obrazovce. Zkontrolujte, zda je možné zvýraznit fotoaparát v okně hierarchie a při pohledu na to, jak se zobrazí jeho rámec. Na snímku obrazovky je jasné, že část našeho pozadí zůstane mimo zobrazení fotoaparátu, proto musíte upravit velikost tohoto přehledu přetažením rámečku přímo na scénu nebo upravit parametr "velikost" v okně inspektora. V našem případě musel jsem změnit výchozí hodnotu (5) o 5.4.

Všechno, fotoaparát se nedotýkejte, ale přidejte a nastavte zbytek obrázků. Při přidávání vidíme, že některé z nich jsou příliš velké pro naši hru. Může být snížen fyzicky v grafickém editoru nebo prostředku motoru. Zkusme to poslední cestu. Chcete-li to provést, zdůrazňujeme obraz v okně hierarchie a v okně Inspector, změňte hodnoty "měřítko" pro souřadnici X a Y s 1 až 0,5 (tj. Snižujeme do poloviny). Je také žádoucí, aby se zabránilo podšívení, přiřaďte všechny herní objekty do všech herních objektů (s výjimkou pozadí) Nekzero vrstvy (Objednávka ve vrstvě):

Posledním krokem v přípravě herních objektů z obrázků bude "visí" na nich kolektor (kolider). V Unite3d se používají kolidery jako interakční detektory mezi objekty. To je ve skutečnosti, virtuální shell se nosí na náš obraz, který se může zaregistrovat dotáhnout.

Chcete-li přidat kolektor na objekt, vyberte jej v okně hierarchie a potom v okně Inspektor klepněte na tlačítko "Přidat komponentu". V seznamu komponent, který se zobrazí, hledáme fyziku 2d (obvyklá 3D fyzika v našem režimu nebude fungovat) a tam ze všech možností je nejvhodnější pro "kruhový kolider 2d". Vyberu si to. Zelený tah se objeví kolem našeho objektu, který zobrazuje hranice kolečka. Zůstane pouze označit položku "je spoušť", aby náš kolektor registroval pouze tisk a již neohrožoval s okolním herním prostorem:

Podobné akce opakují pro všechny zbývající objekty. Různé od jiných objektů budou jen naše pozadí. Pro něj použijeme box kolider 2D a výstavní pozici z více nula, abyste zatlačili kolider a pozadí samotné na pozadí (to je pro nás užitečné o něco později).

Práce se zvukem

Se zvukem v jednotě 3D na první pohled je všechno poněkud zmatené. Ale budeme se snažit přijít na to v pořádku :)

Nejdříve musíme přetáhnout všechny zvuky do složky Zvuky a konfigurovat je také:

Pokud je hodnota hlasitosti všech zvuků zpočátku nastavena, pak je třeba udělat vše, co je třeba udělat, je vypnout 3D zpracování zvuku. V trojrozměrných hrách je nutné toto zpracování, aby se napodoboval aproximaci zdroje zvuku, když se fotoaparát blíží. Ale ve 2D, můžeme dělat cokoliv, takže přičemž každý zvuk přidělíme zaškrtávací políčko "3D zvuk".

Nyní můžeme pokračovat, aby přidali zvuky do herních objektů. Chcete-li to provést, musíme zvýraznit každé tlačítko na otočení a přidat jej nový "audio zdroj" komponentu z části "Audio". Když je součást přidána, vyberte příslušné tlačítko "Audio Clip" a zaškrtněte políčko Výchozí "Přehrát na Awake" (Přehrát při zobrazení):

Když jsou všechny zvuky připojeny k pravým tlačítkům, čas přijde nejzajímavější - skript ...

První scénář

Než začnete demontovat náš první skript, pravděpodobně stojí za pár slov, což říká o skriptovém systému sám v jednotě 3D.

Uniti umožňuje napsat kód okamžitě ve třech jazycích: JavaScript (přesněji, jeho mírně upravený verzi UniteScript), C # a BOO. V řadě knih a příruček můžete najít názor, že pro začátečníky, skriptování v jednotě je snazší zvládnout příklad JavaScriptu. Tento jazyk však není tak pohodlný jako zbytek a v budoucnu budete s největší pravděpodobností zatáhly. Proto je lepší okamžitě začít se studiem C # (Boo není také špatná, ale existuje jen málo vzdělávacích materiálů).

Nyní o tom, kde napsat kód. Ve výchozím nastavení je kód v jednotě IDE Monodevelop. Výhodou tohoto vývojového prostředí je, že má tipy pro rychlé zadávání standardních metod, tříd a funkcí, stejně jako systém kontroly syntaxe. Mínus pro mě však byla těžkopádná a vysoká intenzita zdrojů. Naštěstí v nastavení jednoty můžete nainstalovat jako textový editor, cokoliv, takže i "pozastavený" Snadný a funkční Poznámkový blok ++ (téměř všechny příklady budou uvedeny v něm).

A poslední. Přirozeně bez referenčních materiálů ve vývoji všech moudrých, nebudete jdou daleko, takže zde je seznam několika rozumných internetových zdrojů pro jednotu 3D:

  • http://docs.unity3d.com/ru/current/manual/unitymanualrestructured.html - oficiální příručka na motoru s částečným překladem do ruštiny (v poslední době se objevil a zatímco to funguje nestabilní);
  • http://docs.unity3d.com/ru/current/scriptherence/index.html - oficiální manuální adresář pro skriptování v angličtině;
  • http://unity3d.ru/distribution/index.php - rusko-jazykové vývojářské fórum pod jednotlivými 3D;
  • http://habrahabr.ru/post/141362/ - cyklus lekcí vytvořit trojrozměrné hry v habrahábru;
  • http://msdn.microsoft.com/ru-ru/library/618Any6.aspx je oficiální příručka C # od společnosti Microsoft v ruštině.

No, aby to nedlouho neotočil, navrhuji okamžitě vytvořit první skript. V části Skripty, pokud existuje mnoho dalších, je lepší zvýraznit samostatnou složku, ale budeme mít jednoduchou hru, takže můžeme vytvořit skript přímo v kořenové složce projektu. Chcete-li to provést, zavolejte v kontextovém menu v okně projektu, vyberte seznam Vytvořit a klikněte na "C # Script". Zavolejme náš nový skript, například zvuky a otevřít ji s dvojitou myší. Odstranění standardních metod aktualizace a start a poté hovoříme požadovaném získání následujícího typu skriptu:

Pokud jste nepochopili editor, pak se náš skript otevře v monodevelopu. Budeme analyzovat jeho strukturu ...

Ve skutečnosti každý skript na C # se skládá ze tří hlavních částí:

  1. Na samém vrcholu jsou knihovny uvedeny, že se musíte připojit k operaci skriptů (například "Použití Unity.Engine" se připojí k provozu samotného motoru a "Používání systému.Collections" je knihovna obsahující Počet vložených tříd pro operaci skriptů v rámci různých systémů).
  2. Třída a variabilní prohlášení. V C # není žádný koncept scénáře, jako takový. Místo toho se používá koncept "třídy", který obsahuje řadu metod a funkcí. Ačkoli ve skutečnosti, v kontextu jednoty 3d, to je téměř totéž, co je totéž :) Hlavní věcí je pamatovat, že jméno třídy musí odpovídat jménu, které jsme dali skript. Funkce proměnných v C # je to, že jsou nutně (s výjimkou dočasného, \u200b\u200bkteré jsou prohlášeny v samotném skriptu). V praxi to znamená, že úroveň přístupu by měla být specifikována pro proměnnou a typu (int, float, bool nebo, nebo jako my ve skriptu, audioklipu. V tomto případě může být název proměnné poskytnuty jakýkoliv. A mohu okamžitě a atribut hodnoty.
  3. Sada metod a funkcí. Metoda v C # je prakticky jakákoliv funkce, která provádí určité akce. V zásadě, v literatuře na jednotě 3D se nazývají funkce, ale pokud mluvíme o C # jako samostatný programovací jazyk, to je metody :). Funkce v čisté formě v Uniti jsou například standardní zvukové výstupní funkce, kreslicí GUI prvky atd., Které se používají uvnitř metod.

Vědět nyní strukturu skriptu, není obtížné pochopit jeho význam, který přichází na další ... Ve třídě (script) zvuky deklarujeme 9 proměnných typu audioklipu s názvy pro pohodlí rozlišování s názvy. Děláme jim nutně veřejnost (soukromé nebudou zobrazeny v editoru, a budeme muset "zavěsit" zvuky přes editor). A pak v těle skriptu používáme metodu "Void OnMousedown ()". Dříve zodpověděl pouze zacházení s kliknutím myší, ale v nových verzích je interpretována a jak se dotýká dotykové obrazovky. Píšeme podmínky, pro které zkontrolujeme jména uzavřených kolidátorů, a pokud najdeme tisk jednoho z nich, výstup odpovídajícího zvuku (používáme standardní funkce audio.playoneshot ());).

Při psaní kódu, pečlivě postupujte podle přítomnosti všech otevíracích a zavřených závorek, jinak budete neustále přijímat chybové zprávy v konzole a nemůžete svůj projekt spustit vůbec! Také věnujte pozornost používání metod a funkcí velkých písmen. Často jsou často způsobeny chybami. A samozřejmě udržujte všechny značky (body, dvojtečka a držáky), kratší, jazyková syntaxe. Nejdříve to bude obtížné, ale v průběhu času začnete psát od nuly bez chyb!

Když je skript připraven, vyberte jej v okně Inspektor, přiřaďte zvuk od každé proměnné. Nyní máme jen aplikovat náš skript na objekty na scéně. Nejjednodušší způsob, jak udělat, je opět přetažením skriptu přímo na správný herní objekt v seznamu hierarchie:

Pokud byl skript správně přetažen, měl by se zobrazit v okně inspektora v tomto objektu, ke kterému jsme ji přetáhli. Přetažením skriptu na všechny objekty, které by měly zvonit ve hře a může se to pokusit spustit. Když kliknete na naši herní tlačítka, konečně, zadaný zvuk zvuk!

Úvod do GUI.

Hra v zásadě již funguje, ale nějaký druh plešatý ". Něco v něm není dost ... a přinejmenším nápisy s názvem, který je před námi! Jinými slovy, musíte implementovat libovolné odlišné uživatelské rozhraní.

Vlastně, GUI je snížením z angličtiny. "Grafické uživatelské rozhraní", tj. Grafické uživatelské rozhraní. Tradičně obsahuje takové komponenty jako:

  • tlačítka;
  • okno;
  • textové oblasti;
  • chekboxy a / Il Radiocans;
  • slotery (posuvník) atd.

V jednotě 3D, to vše (a dokonce i něco, co je) je plně přítomen. Hlavní věcí je naučit se použít! Zvažte, jak mohou GUI prostředky v jednotě vytvořit jednoduchý titulek nápisu.

Chcete-li to provést, vytvořte nový skript s názvem Rozhraní a změňte jej následovně:

Zvažte skript pozorně na snímku obrazovky. Zde budeme psát pouze jednu veřejnou variabilní novou pro US Type Guistyle. Tento typ umožňuje ve vizuálním režimu změnit návrh položek, ke kterým je tento styl přiřazen. Styly jsou vhodné použít, pokud existuje mnoho prvků rozhraní stejného typu (například tlačítka), ale měly by mít jiný vzhled.

Dále vytváříme tlačítko ("gui.button"), který má následující syntaxi: stav - 4 souřadnice (odrážka horizontální z levého okraje, odrážka vertikální od horní hrany, šířka, výška) - viditelný text v uvozovkách a dále , volitelně, vstupní styl. Uvnitř podmínek tlačítka jsou předepsány potřebné funkce. V našem případě jsme předepsali přechod na stránky developera ("Application.Openurl ("); ").

Skripty s GUI mohou pracovat s jakýmikoliv herními objekty, ale obvykle poradí "zavěsit" k fotoaparátu, že budeme dělat, přetažením skriptu k hlavnímu objektu kamery. Pokud jste nyní zvýrazněni v okně hierarchie, v okně inspektorů budeme moci vidět veřejnou proměnnou našeho stylu, nasazení, které obdržíme plný přístup k nastavení tohoto stylu!

Můžeme určit barvu textu a texturu pro pozadí v jakýchkoliv situacích (pro tlačítko, které potřebujete zaregistrovat tři jeho možnosti (normální - normální zobrazení, vznášet se - když se vznášíte a aktivní - při kliknutí), nastavte odsazení a nakonfigurujte písmo. Ve výchozím nastavení je jediný dostupný v jednotě 3D písmo je však Arial, ale můžete jej ručně načíst jakýkoliv jiný v projektu a aplikovat jej v poli písmo konfigurací všech souvisejících parametrů.

To, co je zajímavé a zároveň není zcela pohodlné, prvky GUI nejsou zobrazeny na scéně, dokud nezačneme projekt, takže se přizpůsobení parametrů každého prvku může trvat hodně času. Spusťme projekt a uvidíme, jak bude výše uvedeno výše uvedené tlačítko:

Změnit rozhraní pro stav a statické proměnné

Už jsme udělali hodně, ale je vždy mnohem hodně zlepšovat :) Proto navrhuji jako poslední příklad vytvořit referenční okno, které obvykle normální vývojáři poskytují své hry a aplikace. Chcete-li to provést, přidejte obrázek do složky s obrázky pro takové tlačítko jako otazník a vytvořte z něj herní objekt. Můžeme na něm pověsit kolektor a napsat skript s názvem, například "Nápověda" následovně:

V tomto skriptu máme dvě proměnné. První proměnná definuje pokožku, která bude použita pro všechny prvky rozhraní popsaných v této třídě. Na rozdíl od stylů, práce, s níž jsme se podívali výše, přísahy vám umožní změnit vzhled nejen samostatné položky, ke kterému jsou přičítány, a všechny prvky určitého typu okamžitě. Kromě toho, na rozdíl od stylů, skiny nejsou předepsány na prvky, ale jsou okamžitě prohlášeny za celou metodu a práci, dokud jiná pokožka deklarovaná. Mělo by být také pamatováno, že kůže existují nejen ve formě proměnných, ale také jako samostatné soubory. Proto před deklarováním pokožky musíte okamžitě vytvořit v okně "Projekt" z kontextového menu: "Vytvořit" - "GUI kůže".

Druhá proměnná je logická (nebo v jiném BULEV). To může mít pouze dvě hodnoty: "pravda" (true) nebo "false" (false). Na základě své binární povahy je taková proměnná ideální pro realizaci všech druhů přepínačů. V našem případě bude zodpovědný za zobrazení textu s popisem naší hry.

Pokud se však díváte pozorně, můžete vidět, že poslední proměnná má jeden nádherný parametr - "statický". Přidání proměnných takového parametru vám umožní být statické a přístupné z jiných skriptů!

Ale zpět do zbytku kódu. Již obeznámený pro nás "void OnMousedown ()" zde bude sloužit jako přepínač proměnné "isvisible" pomocí jednoduchého stavu. Po stavu je však další funkce. Tato funkce ("debug.log ();") slouží k výstupu "za mouchu" do konzole hodnot proměnných, které potřebujeme (vstupujeme bez uvozovek v závorkách). Jak vidíte, uvnitř funkce můžete kombinovat jak neměnný text (napsaný v uvozovkách) a proměnných (bez uvozovek). Hlavní věc je, že pouze znak "+" mezi všemi údaji.

Dále, na skriptovém textu máme způsob kreslení rozhraní ("void ongui () () ()"), v rámci které vidíme reklamní novou kůži ("gui.skin \u003d helpskin;") a nový prvek Rozhraní typu gui.box. Na rozdíl od tlačítka je Boxing neaktivním prvkem a obvykle se používá k výstupu různých textových nebo grafických dat.

Věnujte pozornost tomu, jak nastavíme umístění pro box. Zde, všechny hodnoty nejsou přímo uvedeny přímo, ale s pomocí matematických výrazů, což je ve skutečnosti analog "gumového rozložení" ve vývoji webu. Problém je v tom, že při určování přesných rozměrů prvků GUI s různými rozlišením obrazovky se nebudou přizpůsobovat a mohou být buď příliš malé, nebo naopak velké. V další verzi, vývojáři motoru slibují, že GUI adaptivní, ale stále musí být zvrácené: (

Posledním krokem k úspěchu bude konfigurace naší kůže. V proměnné skriptu určete soubor skinů a potom vyberte tento soubor v okně projektu. Pokud jde o další soubory, nastavení Skiny se zobrazí v okně Inspector. Zde hledáme prvek, který se podléhá změnám (v našem případě skříně), odhalujeme jej a konfigurujeme stejný styl podobně jako výše uvedené:

Chcete-li zjistit, zda náš skript funguje správně, spusťte projekt a pokuste se kliknout na tlačítko Nápověda:

Nyní vše funguje, ale není vždy vhodné stisknutím tlačítka HELP skryjete popis zpět. Více známější k zmizení všech oznámení, aby se vrhl do libovolného volného místa, než se zaměřit na tlačítka. A tady jsme jen užitečná pro nás, že jsme udělali variabilní "isvisible" statický, stejně jako visel na pozadí obrázku kolečka ...

Vraťme se do našeho prvního skriptu ("Zvuky"), který držel stisknutím tlačítek, které chcete přehrát zvuky. V něm (přesněji, uvnitř metody "Void OnMousedown ()"), budeme dostatečně předepisovat pouze jednu linku:

pokud (tento.name! \u003d "Helpbutton") (help.svisible \u003d false;)

S tímto řádkem stanovíme stav: Pokud název stisknutého kolečka není roven názvu nápovědy, pak "ISVisible" proměnná v "Nápověda" skript bude "FALSE". Je nutné pouze to, že proměnná "isvisible" měla přesně "statický" předpis, jinak dostaneme chybu.

Nyní při spuštění uvidíme, že naše okno nápovědy zavře, když stisknete nejen tlačítko v pravém horním rohu, ale také při stisknutí libovolné volné části obrazovky. Jediná věc, která může být vylepšena, je učinit, že okno je skryté a kliknutím na něj sám ... Bude to vaše "domácí úkoly";) Budu jen říci, že gui-box bude muset změnit stejné zdobené Tlačítko, opět s nastavením kůže a předepisování funkce, která mění proměnnou "isvisible". Všechno, pak ticho :)

Kompilace hry a uložit projekt

Konečně, všechno funguje s námi! To znamená, že je čas udržet naši hru a test na reálném zařízení. A pro to musí být sestaven do spustitelného souboru (pro Windows, například v Exe a pro Android v APK).

Pokud chcete sestavit hru pro počítač, nemusíte provést žádné předběžné nastavení. Nicméně, pro Android, budete muset nejprve připojit stažený u nás na samém počátku Android SDK. To je poměrně jednoduché: jdeme do menu "Edit", zavoláme položku "Předvolby" a v okně, které se otevře, přejděte na kartu "Externí nástroje". Zde hledáme řetězec "Android SDK umístění" a v něm určete cestu k rozbalenému archivu s SDK (viz snímek obrazovky níže). Mimochodem, zde můžete změnit aktivní výchozí monodevelop textového editoru svého oblíbeného :)

A teď je okamžik pravdy! Jdeme do menu "Soubor" a hledáme položku "Nastavení sestavení". V okně, které se otevře, budeme muset okamžitě přidat scény k sestavení. Pokud je scéna jedna (jako v našem projektu), pak bude stačit na kliknutí na tlačítko "Přidat aktuální". Pokud je několik z nich, pak bude nutné, aby se každý z nich otevřel a udělal podobný způsob, jak se seznamem scén, a pak přetažením Chcete-li nakonfigurovat potřebu pořadí:

Dalším krokem je vybrat platformu montáže (plánujeme hru pod androidem, to znamená, že je vybrán) a stiskněte tlačítko "Nastavení přehrávače" dole. V okně Inspector je otevřena řada nastavení, ze kterých jsou některé povinné nebo velmi žádoucí. Je žádoucí určit názvy vývojářské společnosti, program a jeho ikony (název společnosti, název produktu a výchozí ikonu) v horní části seznamu nastavení.

V dolní části stejné části v sekci "Další nastavení" existují dva požadované parametry: "Identifikátor svazku" a "Bundle verze". Výchozí verze je připevněna jako 1.0, ale identifikátor bude muset být vytvořen ručně a nejlépe jedinečný. Mělo by se skládat ze tří částí oddělených bodů: vyhrazené slovo "com", pak název firmy developerů a na konci názvu samotného aplikace.

Zbývající nastavení montáže lze změnit samostatně nebo nemění vůbec. Hlavní věc je, že nyní může být spuštěna kompilace. Chcete-li to provést, stačí stisknout tlačítko "Sestavit" v okně "Sestavit" v okně "Sestavit nastavení" a počkat, dokud nám programy nedávají připravené, balené v aplikaci APK souboru :)

Závěr

Na tomto, naše lekce-přehled pro vytváření nejjednodušších aplikací pro Android končí. Abyste mohli opakovat vše, o čem jsme hovořili, na konci článku poskytnu odkaz s archivem, ve kterém budou všechny herní zdroje uloženy ve formě samostatné složky (pokud chcete dělat všechno od Scratch) a jako soubor s rozšířením UnitePackage. Ten umožňuje importovat celý projekt v Uniti najednou, včetně závislostí atd.

Chcete-li importovat náš projekt (a mimochodem, všechny pluginy stažené z internetového nebo aktiva) musí jít do menu "Assets", vyberte možnost "Import Backage" a v něm "Vlastní Packa", po kterém zadáte Cesta do našeho souboru a stiskněte tlačítko "Import". Mimochodem, proveďte úplnou zálohu svého projektu, s uložením v takovém UnitePackage můžete ze stejného menu ("aktiva") kliknutím na položku "Exportovat balíček".

Zdá se, všechno :) jako osoba, která zvládla jednotu 3d od nuly, v článku jsem se snažil dát odpovědi na maximální počet otázek a zdůraznit hlavní nuance práce s motorem, který vznikl první. Ale možná někdo nebude nestačí, takže pokud máte nějaké dotazy, zvládnete buď přímo ke mně na poštu, nebo na fóru: Co mohu pomoci!

Přeji vám hodně štěstí a úspěšné realizace všech projektů!

P.S. Je dovoleno volně kopírovat a citovat tento článek, pokud zadáte otevřenou aktivní odkaz na zdroj a zachování autorství obchodníka Ruslana.

3D jednota bude nepostradatelným asistentem pro ty, kteří profesionálně přistupují k úkolu vytvářet kvalitní materiál. Aplikace integrované připravené modely, skripty a textury, které mohou být doplněny vlastním obsahem - obrázky, zvuky a videozáznamy.

Hotové výrobky vytvořené v jednotě 3D jsou kompatibilní s téměř všemi populárními platformami - od mobilních telefonů a končící televizory SMART TV.

Možnosti programu:

  • motor pro učení;
  • flexibilní multifunkční editor;
  • vysoká míra kompilace;
  • snadné zvládnutí rozhraní;
  • kompatibilita s velkým počtem platforem.

Princip operace

Chcete-li použít program, musíte si stáhnout platformu UNITY HUB a můžete vyzkoušet funkce bezplatné verze Osobní. Je k dispozici na objemu monitalizace až 100 tisíc dolarů ročně.

Kromě volné volby se můžete přihlásit k odběru dalších dalších rozšířených verzí:

Unity Plus (~ $ 25 měsíčně) - poskytuje omezený přístup k zákaznickému úspěchu Advisor Service Service, shromažďuje informace o poruchách na uživatelských zařízeních, monitorování.

Unity Pro (~ $ 125 měsíčně) - maximální odběratele. Poskytuje podporu profesionálních vývojářů, umožňuje získat prioritní přístup k podpoře programových tvůrců, zahrnuje vylepšené funkce pro monitorování výkonu a shromažďování statistik.

Budování všech herních akcí je založena na poměrně kvalitním fyzickém jádru programu (PhysX), ze kterých závisí chování modelů. Vzhledem k možnosti importu textur a objektů může být výrobek dána jedinečnost nebo používat nástroje integrované vývojáře. Je důležité pochopit, že každý objekt vytvořený v tomto designér je specifický soubor skriptů a událostí, které mohou být spravovány nezávisle.

Pro profesionální práci s jednotkou 3D je nutná nějakou dobu se seznámit s rozhraním a schopnostmi aplikace. Chcete-li to udělat, na internetu najdete spoustu válců nebo navštívit specializované kurzy, které se konají v mnoha velkých městech.

Je třeba poznamenat, že pracovat s 3D grafikou, kterou potřebujete mít moderní počítač s hardwarovou grafickou kartu.

Profesionálové:

  • prakticky neomezená funkce pro vytváření projektů;
  • podpora prohlížeče 3D grafiky;
  • kompatibilita s herními konzolami a moderními televizory;
  • velký počet vizualizačních nástrojů;
  • existuje bezplatná verze.

Minusy:

  • chcete-li vytvořit vysoce kvalitní produkt, je zapotřebí specifické znalosti;
  • neexistuje možnost velmi jemné konfigurace fyzického jádra programu;
  • neexistuje žádný překlad rozhraní do ruštiny.

Můžete si stáhnout Uniti 3D nejen pro přípravu soutěžícího na populární online hračku Jaggernaut (který je také kreslen nástroji hrdiny naší recenze), ale také vytvořit elegantní trojrozměrné prezentace. Nechte to trvat o něco déle, ale zaručeno je efekt Wow pro publikum.

Chcete-li splnit schopnosti platformy, stačí stáhnout bezplatnou verzi jednoty 3D. Pokud potřebujete přístup ke zdrojovému kódu, podívejte se na placené verze.

Analogy:

  • Game Editor - bezplatná aplikace pro vytváření her;
  • Construct 2 je populární herní návrhář, která se vyznačuje jednoduchým rozhraním.
  • Construct 2 je výkonný program pro vytváření 2D projektů.

Jak rychle napsat hru pro Android na jednotě

V tuto chvíli se každý může stát úspěšným vývojářem mobilních her nebo aplikací, aniž by na toto Titanic úsilí. Příkladem takového případu je Dong Nguyen, který vyvinul flappy pták. Ve hře neexistovala žádná obtížná mechanika nebo grafika, ale nebránila jí, aby se stala populární a přinést jeho tvůrce padesát tisíc dolarů denně. Ve hře však nebylo nic pozoruhodného. To vše, co potřebovalo k úspěchu, je být na správném místě ve správný čas a trochu hodně štěstí. To se dnes může stát dnes, potřebujete jen ten správný nápad.

Pro demonstraci, jak snadné je napsat něco takového, dnes budeme psát náš flappy pták pomocí jednoty za pouhých 10 minut.

Charakter hry

Nejprve vytvořit nový projekt a ujistěte se, že je vybrána možnost 2D.

Vložte své sprite ptáky ve scéně. Nezapomeňte zapnout fantazii!

Poté upravte velikost sprite, jak chcete při přetažení s rohem správným směrem. Sprite by měl být viditelný v okně hierarchie vlevo. Všechny objekty ve scéně jsou v něm viditelné, a v tuto chvíli by měly být pouze dvě: kamera a pták.

Přetáhněte fotoaparát na ptáka a uvolněte. Fotoaparát by měl být pod ptákem, bude to znamenat, že kamera je nyní "baby" ptáky. Pozice fotoaparátu bude nyní opravena vzhledem k ptáka. Pokud se pták pohybuje vpřed, pak fotoaparát dělá totéž.

Vyberte ptáka ve scéně nebo v okně hierarchie. Zobrazí se seznam možností a atributů vpravo v okně s názvem Inspektor. Zde můžete ovládat různé proměnné vázané na konkrétní objekt.

Nyní klikněte na Přidat komponentu. Zvolte Fyzika2D\u003e Rigidbody2D je připravený soubor instrukcí pro aplikaci gravitace na náš charakter. Klikněte na Omezení v tomto panelu a poté vyberte možnost Freeze Rotation Z. To zabrání otáčení ptáka spolu s fotoaparátem v kruhu.

Stejným způsobem přidejte mnohoúhelník Collider, který říká jednota, kde jsou postavy postavy. Klepněte na tlačítko Přehrát a podívejte se, jak sprite s fotoaparátem nekonečným klesne dolů.

Zatímco všechno jde dobře!

Nyní je čas jít na charakterové lety, dobré to bude snadné.

Nejprve musíte vytvořit c # -Script. Vytvoření složky pro IT (klepněte pravým tlačítkem myši kdekoli v aktivech a vytvořte složku "Skripty", proveďte pravým tlačítkem myši a vyberte možnost Vytvořit\u003e C # skript.

Zavolejme tomu "charakter". Klikněte dvakrát, abyste jej otevřete ve svém IDE, ať už monodevelop nebo Visual Studio. Poté přidejte následující kód:

Public Class Charakter: Monobehaviour (Public Rigidbody2D RB; veřejný float mušle; public float flatheight; // je nutné inicializovat neplatný start () (rb \u003d getCompionent ();) // aktualizace se nazývá jednou za rámeček void aktualizace (rb. Velocity \u003d New Vector2 (MoveSpeed, RB.Velocity.y); if (input.getmouseButtondown (0)) (rb.velocity \u003d nový vektor2 (rb.velocity.x, flapheight);), pokud (transform.pozition.y\u003e 18 || transform.pozition.y.< -19) { Death(); } } public void Death() { rb.velocity = Vector3.zero; transform.position = new Vector2(0, 0); } }

Tento kód dělá dvě věci. Způsobuje, že se postava pohybuje vpřed při rychlosti, kterou definujeme v inspektoru, a vytváří pocit ptačího letu. Metoda aktualizace () je opět zavolána po celou dobu, takže vše, co zde vložíte, bude prováděno nepřetržitě. V tomto případě přidáme do našeho objektu určitou rychlost. Proměnná RB je rigidbody2D skript, který jsme aplikovali na náš objekt dříve, takže když píšeme rb.Velocity, apelujeme na rychlost objektu.

Klepnutím na obrazovku je interpretována jednotou jako myší, pokud používáte mobilní zařízení. Po stisknutí nutíme postavu trochu vylézt.

MoveSpeed \u200b\u200bproměnná bude zodpovědná za rychlost pohybu a proměnná Flapheight je pro zvýšení výšky ptačího letu po každém tisku. Vzhledem k tomu, že tyto proměnné jsou deklarovány jako veřejnost, budeme moci změnit je mimo scénář.

Metoda smrti () je také deklarována jako veřejnost, což znamená, že jiné objekty a skripty budou moci volat. Tato metoda jednoduše vrátí pozici znaku na začátek. Bude také používán pokaždé, když postava bude létat příliš vysoko nebo nízká. Brzy pochopíte, proč je vyhlášena jako veřejnost. Řádek rb.velocity \u003d vector3.zero; Je třeba odstranit puls - nechceme po každé smrti postava padlo rychleji a rychleji?

Nyní můžete opustit IDE a přidat skript jako komponentu znaku. Chcete-li to udělat, musíte si vybrat náš pták a klepněte na tlačítko Přidat komponentu\u003e Skripty\u003e Znak. Nyní můžeme v inspektoru definovat Movement Streepeed a Flapeight (pro to a potřebujete veřejně převedené). Přidělujeme variabilní hodnoty 3 a 5.

A další: V inspektoru musíte přidat značku na znak. Chcete-li to provést, klepněte na tlačítko kde tag: neoznačený je napsán a pak vyberte přehrávač v rozevíracím seznamu.

Překážky

Nyní přidejte překážky: trubky. Někdo v trubkách najde houby a někdo je jejich smrt.

Přetáhněte sprite trubky do scény na místo, kde by měla být první překážka, a jméno je pipe_up.
Nyní vytvořit nový skript s názvem trubka:

Pipe public Class: Monobehaviour (vlastnost soukromého charakteru; // je nutné inicializovat void Start () (znak \u003d FindObjectype ();) // Aktualizace se nazývá jednou za snímku void aktualizace () (pokud (znak (znak.transform.Posion.Position. X - transformace.Position.x\u003e

Přidejte tento skript na trubkový sprite stejným způsobem jako dříve. Potrubí se tedy vrátí na obrazovku po odchodu na levé hranici. Neudělali jsme nic tady, ale vrátíme se k tomu.

Způsob OncolliairisleR2D () se nazývá pokaždé, když trubka interaguje s charakterem. Poté se nazývá metoda smrti () vytvořená dříve vytvořeným hráčem ve výchozím bodu.

Takže máme jednu trubku, která z času na čas zmizí a zobrazí se na druhém konci obrazovky. Zemřete v ní - zemřete.

Invertované trubky

Nyní máme jen jednu sprite potrubí. Přidejme ještě jednu. Chcete-li to provést, klepněte pravým tlačítkem myši v okně hierarchie, klepněte na příkaz Nový objekt 2D\u003e sprite a poté vyberte sprite, který chcete použít. Ještě jednodušší bude jednoduše přetáhnout soubor na scénu znovu.

Jméno Tento sprite pipe_down. V inspektoru v Rendereru Sprite vyberte možnost Flip Y pro otočení potrubí vzhůru nohama. Přidejte stejný rigidbody2d.

Nyní napište nový C # skript nazvaný potrubí. V něm bude podobný kód:

Public Class Piped: Monobehaviour (charakter soukromého charakteru; // Je nutné inicializovat neplatný start () (znak \u003d FindObjectype ();) // aktualizace se nazývá jednou za snímku void aktualizace () (pokud (znak (znak.transform.pozice. Pocation.x - transformace.Position.x\u003e 30) ())) ())) void onkolisionenter2d (kolize2d jiné) (pokud (ostatní.gameObject.tag \u003d\u003d "přehrávač") (znak.Death ();)))

Prefabrikní

Takže máme dost tohoto kódu, abychom vytvořili celou hru. Mohli bychom přesunout trubky na pravé straně obrazovky pokaždé, když zmizí, nebo zkopírují a vloží tolik trubek, jak bychom se chtěli setkat po celou dobu.

Pokud půjdete jako první, pak se ujistěte, že trubky stojí po náhodné generaci, a bylo by těžké udržet upřímný tah věcí. Po smrti postavy se mohou objevit v kilometrech od první trubky!

Pokud jdete za druhé, pak vše skončí nadměrnou spotřebu paměti, s zpomalením hry a omezený na hraní, protože Všechno stojí na stejných místech pokaždé.

Místo toho pojďme používat prefabami. Pokud řekneme jednoduše, obrátíme naše potrubí do šablon, které pak mohou být schopni efektivně vytvořit větší počet trubek. Pokud existují programátory, zvažte skript třídy trubek a trubky jsou instance tohoto objektu.

Chcete-li to provést, vytvořte novou složku "Prefabs". Poté přetáhněte pipe_up a pipe_down z okna hierarchie do složky.

Pokaždé, když objekt z této složky ve scéně, bude mít stejné vlastnosti, takže nebudete muset neustále přidávat komponenty. Pokud změníte velikost komponenty ve složce, ovlivní všechny trubky ve hře a nemusíte se každý z nich měnit zvlášť.

Jak pochopíte, to bude zachránit naše zdroje. To také znamená, že můžeme interagovat s objekty z kódu. Můžeme vytvářet kopie našich trubek.

Nejprve přidejte tento kód do podmíněného výrazu v aktualizační () metodě skriptu potrubí, který jsme ponechali prázdné:

VOID Update () (IF (0.TRANSFORD.POSITION.X\u003e 30) (Float Xran \u003d Random.Range (0, 10); Float Yran \u003d Random.Range (-5, 5) ; InstanTeate (GameObject, nový vektor2 (znak.transform.position.x + 15 + Xran, -10 + Yran), transformace.rotation; zničit (gameobject);))

Je nutné vytvořit instanci naší gameObject. Výsledkem je nová identická kopie. V jednotě, vždy, když používáte slovo GameObject, odkazuje na objekt, ke kterému je skript aktuálně vázán na - v našem případě k potrubí.

Generují rebound trubky v náhodných variantách, které mají být zábavnější.

Namísto toho, aby to všechno bylo v potrubí skriptu generovat oba objekty na jednom místě. Můžeme tak snadno instalovat polohu druhé trubky vzhledem k prvnímu. To také znamená, že potřebujeme méně kódů pro potrubí.

Vytvořte veřejnost GameObject s názvem Pipedown. Poté aktualizujte kód následujícím způsobem:

IF (znak.transform.position.x\u003e transforma.pozition.x\u003e 30) (float xran \u003d random.range (0, 10); float yran \u003d random.range (-5, 5); float gapran \u003d náhodné. (0, 3); instancie (gameObject, nový vektor2 (znak.transform.position.x + 15 + xran, -11 + yran), transformace.rotation); instantowe (pipedown, nový vektor2 (znak .x + 15 + XRAN, 12 + GAPAN + YRAN), transformace.rotation; zničit (gameobject);)

Vrácení zpět do jednoty a přetažení Pipe_down Prefab ze složky Prefabami (to je důležité!) Na místo, kde je napsáno "trubka dolů" (upozornění, protože náš velbloudí pouzdro je nahrazen prostorem) do trubkového potrubí sprite. Pokud si pamatujete, definovali jsme trubku jako veřejný gameObject, který nám dává příležitost určit, co je tento objekt odkudkoliv - v tomto případě prostřednictvím inspektora. Volba panelu pro tento objekt jsme přesvědčeni, že při vytváření instance potrubí bude obsahovat všechny atributy a skript, který jsme přidali dříve. Nemáme jen vytvořit sprite, ale znovu vytvořit objekt s koliderem, který může charakter zabít.

Vše, co přidáváme na stejné místo v potrubí skriptu, je jednoduše zničit (gameObject) tak, že trubka je samočinně rozptýlena, když je obrazovka uvolněna levé okraje.

Pokud začnete hru, zobrazí se obrazovka dál automaticky a zemřete, pokud narazíte na některou z trubek. Flip dost daleko, a tyto trubky zmizí a znovu se objeví.

Bohužel existuje dlouhá vzdálenost mezi trubkami a obrazovka vypadá prázdně. Mohli bychom ho opravit tím, že přidáte několik prefabrikovaných naší scéně, abychom vytvořili dopravník neustále objevující trubky. Bylo by však lepší generovat trubky ve skriptu. To je důležité, protože jinak, po smrti charakteru potrubí, je zničena na začátku cesty a znovu se vytvoří prázdný prostor.

Můžeme tedy vytvořit několik prvních trubek během každé hry načítání a vrátit všechno na našem místě po smrti charakteru.

Nekonečný let

Nyní pojďme vytvářet veřejně přenášené pipe_up a pipe_down ve znakovém skriptu. To vám poskytne možnost odkazovat na vytvořené objekty, přetažením prefabriků do znaku znaku správně, jako když jsme přidali pipe_down do scénáře potrubí.

Musíme tyto proměnné přidat:

Public GameObject pipe_up; Public GameObject pipe_down;

Pak budeme psát tuto metodu:

Veřejný void BuildleLevel () (InstanTeate (Pipe_down, nový vektor3 (14, 12), transformace); instanční (pipe_up, nový vektor3 (14, -11), transformace. 14), transformace); instancie (pipe_up, nový vektor3 (26, -10), transformace.rotation); instanční (pipe_down, nový vektor3 (38, 10), transformace. 38, -14), transformace); instancie (pipe_down, nový vektor3 (50, 16), transformace.rotation); instanční (pipe_up, nový vektor3 (50, -8), transformace. Nový vektor3 (61, 11), transformace.rotation; instanční (pipe_up, nový vektor3 (61, -13), transformace);););

Zavoláme to jednou v metodě aktualizace () a jednou v metodě smrti ().

Po zahájení hry se nazývá aktualizace () a naše trubky jsou nastaveny podle dané konfigurace. Vzhledem k tomu první několik překážek bude vždy stát na stejném místě. Po smrti hráče bude potrubí spadat na stejná místa.

Návrat na scénu v jednotě a odstranit dva trubky, které jsou nyní tam. Vaše "hra" bude vypadat jako prázdná obrazovka s ptákem. Stiskněte Play a trubky se objeví po prvních několika jejich poloze náhodně.

Konečně

Takže jsme udělali celou hru! Přidejte měřič bodů, zkuste to zjistit a zvýšit složitost hry, jak je podporována. Nebude nadbytečný, aby se menu. Další dobrý nápad zničí trubky na obrazovce po smrti charakteru. Jakmile s tím dokončíte - zvažte, co je připraveno k vydání ve hře Play Store v kapse! Jednou jako podobná hra udělala další vývojář velmi bohatý, a to dokazuje, že nemusíte být programátorem genius nebo mít bohatý vydavatele pro vaši záda k dosažení úspěchu. Potřebujete jen dobrý nápad a deset minut!

Chcete psát aplikace pro Android, ale nevíte, kde začít? Pak se seznámí s naším skvělým prozkoumat vývoj Android.