Vytvorenie 3D hry pre Android Unity. Vytvorenie hry v systéme Android. Čo je herný dizajnér

Vývoj hier pre zariadenia s OS Android si vyžaduje prístup podobný vývoju pre iOS. Na druhej strane hardvér Android zariadení nepodlieha jasným štandardom, čo si vyžaduje riešenie problémov, ktoré pri práci s iOS absentujú. Rozdiely sú aj medzi verziami Unity pre Android a iOS.

Príprava vývojového prostredia Android

Predtým, ako budete môcť otestovať svoje hry na zariadení, budete musieť pripraviť svoje vývojové prostredie. Predovšetkým si stiahnite a nainštalujte Android SDK požadovanej platformy a pridajte svoje zariadenie do systému (tento proces je odlišný pre Windows a Mac). Toto je podrobne napísané na webovej stránke Android Developers, ako aj Ďalšie informácie môže poskytnúť výrobca vášho zariadenia. Keďže ide o pomerne komplikovaný proces, pripravili sme pre vás malý návod, ktorý vám pomôže pripraviť všetko potrebné pre vývoj. Ak potrebujete ďalšie informácie, môžete ich získať na portáli Android Developer Portal.

Prístup k funkciám systému Android

Unity poskytuje rozhranie API na prístup k vstupu a nastaveniam systému Android. Dostupné triedy sú zdokumentované na stránke Code for Android Assemblies.

Prepojenie kódu C, C++ alebo Java so skriptmi

Unity umožňuje volať funkcie napísané v C/C++ priamo zo skriptov (Java funkcie je možné volať nepriamo). Ak sa chcete dozvedieť, ako získať prístup k funkciám z natívneho kódu z Unity, navštívte stránku vytvárania doplnkov pre Android.

Occlusion Culling (orezanie neviditeľnej geometrie)

Unity poskytuje podporu pre occlusion culling, čo je veľmi užitočné pri optimalizácii pre mobilné platformy. Viac informácií nájdete na stránke occlusion culling.

Prispôsobenie úvodnej obrazovky

Úvodnú obrazovku zobrazenú pri spustení hry je možné prispôsobiť – ďalšie informácie nájdete na tejto stránke.

Riešenie problémov a hlásenie chýb

Existuje mnoho dôvodov, prečo vaša aplikácia zlyháva alebo nefunguje správne. Náš sprievodca riešením problémov špecifických pre Android vám pomôže vyriešiť príčiny chýb v čo najkratšom čase. Ak po prečítaní manuálu predpokladáte, že problém je v Unity, mali by ste podať hlásenie o chybe. Pokyny nájdete na tejto stránke.

Ako sa Unity pre Android líši od verzie pre počítače

JavaScript so silným písaním

Na zlepšenie výkonu vo verzii Unity pre Android je dynamické písanie v JavaScripte vždy zakázané (ako keby sa #pragma strict automaticky aplikovalo na každý skript). Toto je dôležité mať na pamäti, ak prenášate projekt na Android zo starších platforiem a ak narazíte na chyby pri kompilácii, problém treba hľadať predovšetkým v písaní. Takéto chyby sa zvyčajne dajú ľahko vyriešiť tak, že sa uistíte, že typy všetkých premenných sú počas inicializácie explicitne špecifikované alebo pretypované.

Zatiaľ čo Unity Android podporuje textúry DXT/PVRTC/ATC, Unity dekomprimuje textúry do formátu RGB(A) za behu, ak tieto metódy kompresie nie sú na konkrétnom zariadení podporované. To môže vážne ovplyvniť výkon GPU vykresľovania, preto sa odporúča použiť formát ETC. Je to de facto štandard pre Android a mali by ho podporovať všetky moderné zariadenia. Na druhej strane ETC nepodporuje alfa kanál a niekedy budú 16-bitové RGBA textúry najlepšou voľbou z hľadiska kvality, veľkosti a rýchlosti vykresľovania tam, kde je potrebný alfa kanál.

Unity 3D bude nepostrádateľným nástrojom pre tých, ktorí profesionálne pristupujú k úlohe vytvárať vysokokvalitný materiál. Aplikácia integruje hotové modely, skripty a textúry, ktoré je možné doplniť o vlastný obsah – obrázky, zvuky a videá.

Hotové produkty vytvorené v Unity 3D sú kompatibilné s takmer všetkými populárnymi platformami – od mobilné telefóny a končiac SMART televízormi.

Vlastnosti programu:

  • učebný motor Unity;
  • flexibilný multifunkčný editor;
  • vysoká rýchlosť kompilácie;
  • ľahko naučiteľné rozhranie;
  • kompatibilita s veľkým počtom platforiem.

Princíp činnosti

Ak chcete program používať, musíte si stiahnuť platformu Unity Hub a prostredníctvom nej si môžete vyskúšať funkcie bezplatnej verzie Personal. Je k dispozícii s objemami speňaženia až do 100 tisíc dolárov ročne.

Okrem bezplatnej verzie si môžete predplatiť ďalšie dve pokročilé verzie:

Unity Plus (~25 $ mesačne) – poskytuje obmedzený prístup k službe Customer Success Advisor, zbiera informácie o poruchách na zariadeniach používateľov, monitoruje spätnú väzbu.

Unity Pro (~ 125 $ mesačne) je maximálna možnosť predplatného. Poskytuje podporu od profesionálnych vývojárov, umožňuje vám získať prioritný prístup k podpore od tvorcov programu, zahŕňa vylepšené možnosti monitorovania výkonu a zhromažďovania štatistík.

Budovanie všetkých herné akcie vychádza z dostatočne kvalitného fyzického jadra programu (PhysX), od ktorého závisí správanie modelov. Vďaka možnosti importovať textúry a objekty môžete urobiť produkt jedinečným alebo použiť nástroje integrované vývojárom. Je dôležité pochopiť, že každý objekt vytvorený v tomto konštruktore je špecifický súbor skriptov a udalostí, ktoré môžete sami ovládať.

Na profesionálnu prácu s Unity 3D potrebujete nejaký čas na zoznámenie sa s rozhraním a funkciami aplikácie. K tomu môžete nájsť množstvo videí na internete alebo navštíviť špecializované kurzy, ktoré sa konajú v mnohých veľkých mestách.

Treba poznamenať, že na prácu s 3D grafikou potrebujete moderný počítač s hardvérovou grafickou kartou.

Výhody:

  • takmer neobmedzená funkčnosť pre vytváranie projektov;
  • podpora 3D grafiky založenej na prehliadači;
  • kompatibilný s herné konzoly a moderné televízory;
  • veľké množstvo vizualizačných nástrojov;
  • existuje bezplatná verzia.

mínusy:

  • na vytvorenie kvalitného produktu sú potrebné špecifické znalosti;
  • neexistuje možnosť veľmi jemného doladenia fyzického jadra programu;
  • neexistuje preklad rozhrania do ruštiny.

Unity 3D si môžete stiahnuť nielen na prípravu konkurenta populárnej online hračky Juggernaut (ktorá je tiež nakreslená pomocou nástrojov hrdinu našej recenzie), ale aj na vytváranie elegantných 3D prezentácií. Nech to trvá trochu dlhšie, ale wau efekt pre divákov je zaručený.

Ak sa chcete zoznámiť s možnosťami platformy, stačí si stiahnuť bezplatná verzia Jednota 3D. Ak potrebujete prístup k zdrojovému kódu, hľadajte platené verzie.

analógy:

  • editor hry - bezplatná aplikácia vytvárať hry;
  • Construct 2 je populárny herný konštruktér s jednoduchým rozhraním.
  • Construct 2 je výkonný program na vytváranie 2D projektov.

Ahojte všetci! Keď som sa naučil robiť hry na tomto engine, chcem vás naučiť to isté. Najprv potrebujeme samotný Unity3d, akýkoľvek editor 3D modelov a rovné ruky vyrastajúce z pliec.

1. Učenie sa programu

Na začiatok odporúčam nainštalovať Monodevelop! Poďme pochopiť, čo je Jednota. Unity je multiplatformové prostredie na vývoj hier. Práve pre jeho jednoduchosť a zrozumiteľnosť na ňom robil hry aspoň raz každý tretí.

Zvážte snímku obrazovky vyššie:

  • Javisko je vaše kreatívne pieskovisko.
  • Projekt - tu sú všetky animácie a modely, zvuky a textúry.
  • Ak chcete nainštalovať modely na hornom paneli nástrojov, vyberte Aktíva-Importovať nové aktívum. Môžete tiež Aktíva-Import balíka-Vlastný balík. V druhom prípade musí byť balík v prípone .unity.
  • Hierarchia - všetky objekty v scéne. Tam vytvoríte rodičov pre objekt. Stačí presunúť objekt do iného v ponuke hierarchie a bude pripojený. Výsledkom bude akýsi priečinok.
  • Panel nástrojov – zoznam nástrojov. Tu môžete povoliť režim 2D, 3D.
  • Inšpektor – vlastnosť objektu, kde pridávate animácie, skripty a ďalšie. Tam môžete použiť nástroje: hýbať kamerou, hýbať objektom, naťahovať, otáčať objektom.


Teraz vidíte ponuku objektov, do ktorej môžete pridať animáciu, skripty a ďalšie.

Myslím, že s týmto menu nebudete mať problémy.
Kliknutím vytvoríte ľubovoľný objekt.

Vo všeobecnosti sme program študovali, čoskoro bude možné písať naše vlastné hry.

2. Vytvorte jednoduchú hru

Najprv vytvorte územie Create-Terrain. Pridajte trávu a stromy. Kliknutím na zem vpravo sa zobrazí okno, vyberte stromy, trávu.


Vytvárajte tiež hory a hrbole. Potom nahrajte balík ovládačov Characher do projektu. Potom hľadáme v okne s projektom Standard assets-Characters controller a vyberieme pohľad prvej osoby (kapsula) alebo pohľad tretej osoby (mechanik).
Ak prvý človek, tak ho len položte na zem. Ak od tretieho, musíte si stiahnuť animáciu. Odporúčam tiež nastaviť osvetlenie scény na Create-Directional Light.


Ak chcete pridať hudbu, presuňte ju na požadovanú položku.
Hra je pripravená, ale ako ju skompilovať?

Ak to chcete urobiť, prejdite do časti Nastavenia zostavy súboru - nastavenia prehrávača (pre menovku a názov). Vyberte si platformu a voila, máte hotovo. Ak to chcete urobiť, musíte nainštalovať Android SDK. Tam však musíte zadať priečinok so súpravou SDK a nepotrebujete len súpravu SDK, ale rozhranie API požadovanej úrovne (napríklad Android 4.2 má API 17). Napríklad, aby hra bola na Androide 4.0+, musíte si nainštalovať tieto API.

V ďalšom článku vám poviem, ako nastaviť ovládacie prvky pre Android alebo iOS a naučiť sa písať skripty sami.

rozvoj mobilných aplikácií je jedným z najziskovejších povolaní v počítačovom priemysle. Vytvorenie hry pre Android stojí stovky či tisíce dolárov a zisk môže dosiahnuť až milión dolárov. V tomto ohľade sa veľa ľudí zaujíma o vývoj aplikácií pre telefón. V tomto článku sa dozviete, ako vytvoriť hru pre Android od začiatku pomocou počítača, ktorý motor a dizajnér je lepšie vybrať.

žiadne úspešná hra nezaobíde sa bez krásna grafika Preto je tvorba dizajnu jednou z najdôležitejších etáp vývoja. Dizajn v operačnom systéme Android sa implementuje pomocou „dokumentu dizajnu“ alebo dokumentu dizajnu. Musíte začať vytvárať hračku s jej podrobnou štúdiou. Súbor obsahuje:

  1. Modely objektov;
  2. Funkčné špecifikácie;
  3. Obsah hry;
  4. Rozhranie.

Zvážme každý z bodov podrobnejšie.

Objektové modely

Ide o informácie o funkčnosti každej položky. Modely objektov sú zodpovedné za schopnosť nakupovať a predávať predmety, ako aj za zlepšovanie herných charakteristík postáv.

Funkčné špecifikácie

Popisuje hrateľnosť, hlavné črty každej postavy. Tiež tu je popis vlastností herných predmetov - zbraní, lekárničiek, brnení a iných. Funkčné špecifikácie sú v podstate pravidlá, podľa ktorých herný proces. Čím lepšie bude táto časť spracovaná, tým ľahšie bude vytvorenie kvalitnej hry pre Android.

Obsah hry

Toto je textová výplň hry. Popisuje dialógy postáv a akými zbraňami je možné spôsobovať poškodenie, koľko zdravia zaberie zásah, aké vlastnosti sa zvýšia pri použití rôzneho vybavenia. Obsahuje tiež Detailný popis každú položku.

Rozhranie

Rozhranie je spôsob, akým bude používateľ interagovať s hrou. Zahŕňa tlačidlá, pomocou ktorých môžete ovládať postavu, a sekcie menu: napríklad hra, skóre, nastavenia, top hráči, nápoveda. Ak nemáte žiadne skúsenosti s vytváraním aplikácií pre Android, pred vytvorením vlastných si stiahnite z Play Market a analyzujte populárne hry a preniesť tie najlepšie riešenia do vášho projektu.

Herný engine

Jadrom každej hry je engine. Toto je softvér, ktorý vám umožňuje vyvíjať a spúšťať ho. Obsahuje celý rad programov, vrátane renderovacieho enginu, fyzikálneho enginu, zvuku, animácií a mnohých ďalších. Na uľahčenie procesu písania programov vývojári tretích strán vytvárajú svoje vlastné herné motory špeciálne pre aplikácie pre Android.

Každý z nich ponúka iné funkcie: niektoré sú určené pre 3D, iné pre 2D, môžu byť podporované multiplatformové. Existuje veľké množstvo takýchto motorov, ale ak ste začiatočník, je lepšie vybrať si jeden z najpopulárnejších, pretože tam budú prítomné všetky potrebné funkcie.

UDK

Krútiaci moment 2d/3d

Čo je herný dizajnér?

Constructor je program, ktorý kombinuje herný engine a integrované vývojové prostredie. Konštruktér sprístupňuje proces vývoja ľuďom, ktorí nemajú programátorské zručnosti. Niektorí z dizajnérov vám umožňujú vytvárať hry určitých žánrov, iní majú maximálnu funkčnosť, ale stoja oveľa viac peňazí. Pre začínajúceho tvorcu mobilných aplikácií je výber dizajnéra jedným z najdôležitejších momentov, pretože od jeho schopností bude závisieť osud budúcej aplikácie.

Konštruktor umožňuje vytvárať hry rôznych žánrov pre Windows, Android a iOS. Ponuky veľký výber hotové lokácie, predmety, postavy a zvukový dizajn, takže vytvorenie prvej Android hry nezaberie veľa času. Používatelia, ktorí poznajú programovacie jazyky JS a C++, môžu používať vstavaný GML. Jedinou nevýhodou je, že program nie je preložený do ruštiny.

Záver

Vytvorenie hry pre Android nie je jednoduché, ale veľmi výnosné podnikanie. Ak sa rozhodnete vyvinúť hru a zarobiť na nej peniaze, najprv rozpracujte nápad. Potom napíšte „dokument dizajnu“ a rozhodnite sa pre herný engine, ktorý dokáže maximalizovať jeho potenciál. Potom môžete prejsť priamo k vytvoreniu aplikácie v konštruktore.

Video

Ak sa chcete dozvedieť viac o procese vytvárania hier pre Android, pozrite si sériu videí venovaných tejto aktivite.

Ako rýchlo a relatívne jednoducho vytvoriť jednoduchú hru alebo aplikáciu pre Android? Prečítajte si o tom nižšie v článku, ktorý sa zaoberá prácou s engine Unity3D.

Hráte počítačové hry? Ak áno, potom vás určite pri prechode ďalšieho herného trháku občas napadli myšlienky typu: „Ale tu by som to urobil zle!“. Chceš byť sám vývojár? Potom vám ponúkam malé, ale veľmi zábavné "dobrodružstvo" ;)

Čo je motor a prečo je potrebný?

Predtým, ešte v časoch prvých počítačov, sa hry a programy vytvárali takzvanou „hardcore“ metódou. To znamená, že pre plnohodnotný vývoj bol potrebný pomerne skúsený programátor, ktorý dôkladne pozná svoj programovací jazyk a dokáže napísať takmer celú hru (vrátane pixelovej grafiky a špeciálnych efektov!) v jednoduchom poznámkovom bloku. Takých ľudí bolo málo a veľmi si ich vážili (a cenia si dodnes) ...

Dnes sa hranica pre vstup do témy programovania výrazne znížila. A to je uľahčené nielen dostupnosťou literatúry a všetkými druhmi školiacich materiálov, ale aj čoraz zjednodušenejším procesom vývoja. V súčasnosti je zriedkavé stretnúť skutočných "hardcore" ľudí, pretože sa objavili celkom pohodlné vývojové prostredia, ktoré sa nazývajú "enginy".

Podstatou enginu je, že umožňuje importovať všetky potrebné herné objekty v zjednodušenom vizuálnom režime, usporiadať ich na virtuálnej scéne a nakonfigurovať všetky ich parametre. To znamená, že úlohou programátora je iba správne napísať logiku hry!

Za pohodlie práce si však musíte priplatiť miernym nárastom veľkosti projektu (niekedy aj niekoľkonásobne!) v porovnaní s jeho náprotivkom, napísaným po starom „hardcore“. Z tohto dôvodu niektorí vývojári nemajú radi motory alebo sa snažia napísať svoje vlastné, v ktorých sa používajú iba komponenty, ktoré potrebujú ...

Ale ty a ja sme ďaleko od skutočných programátorov :) Vytvorme si preto jednoduchú hru pre Android založenú na populárnom a výkonnom engine Unity3D.

Začíname s projektom v Unity3D

Prečo sme sa teda rozhodli použiť Unity3D:

  • schopnosť vytvárať plnohodnotné 2D a 3D hry;
  • schopnosť zostaviť hotovú hru pre akékoľvek zariadenie;
  • relatívna jednoduchosť ovládania motora;
  • dobrá rozšíriteľnosť funkcionality pripojením pluginov;
  • relatívne malá veľkosť konečnej zostavy hry (v porovnaní s inými motormi).

Hlavným tromfom Unity3D je samozrejme jeho všestrannosť a multiplatformnosť. Hotová hra(možno s malými úpravami) Môžete portovať na PC (Windows, Linux alebo MacOS), Android, PlayStation alebo XBox! K tomu nám treba stiahnuť len samotný engine, ktorý mimochodom „váži“ viac ako gigabajt a potrebné SDK (ak sa plánuje vývoj na mobilné platformy alebo konzola). Ak chcete vytvoriť hru pre Windows, nemusíte nič sťahovať, ale keďže ideme robiť hru pre Android, budeme si musieť stiahnuť aj Android SDK (Software Development Kit). Pre väčšie pohodlie pri práci vám odporúčam stiahnuť si SDK v archíve ZIP.

Keď sa všetko stiahne, môžete rozbaliť do ľubovoľného priečinka Android SDK, ktorý vám vyhovuje, a potom pokračovať v inštalácii samotnej Unity3D. Inštaluje sa ako každý bežný program Windows, takže s inštaláciou by nemali byť žiadne problémy. Po inštalácii sa motor naštartuje a najprv budeme musieť vytvoriť nový projekt:

Aby sme to dosiahli, budeme musieť zatvoriť všetky uvítacie a úvodné okná a potom z ponuky "Súbor" vybrať "Nový projekt". V okne, ktoré sa otvorí (pozri snímku obrazovky vyššie), budeme vyzvaní, aby sme zadali priečinok na ukladanie projektu (jeho názov bude rovnaký ako názov projektu), importovali sme niektoré štandardné sady funkcií (nepotrebujeme ich) a špecifikujeme prevádzkový režim. Ako režim vyberte 2D a kliknite na tlačidlo „Vytvoriť“. Tým je prípravná časť práce hotová :)

Rozhranie motora a hierarchia projektu

Po vytvorení projektu sa projekt načíta do pracovného priestoru Unity3D:

Samotný tento pracovný priestor má modulárnu štruktúru a pozostáva z niekoľkých vnorených okien, ktoré možno ľubovoľne presúvať. Mám to nastavené takto (zľava doprava a zhora nadol):

  1. Okno Hierarchy – zobrazuje hierarchické postavenie aktívnych a neaktívnych objektov na scéne. V predvolenom nastavení je jediným objektom bezprostredne v zozname Hlavná kamera.
  2. Okno scény – zobrazuje celú hernú scénu a objekty na nej (vrátane kamier, zvukov, textúr atď.).
  3. Okno inšpektora - zobrazuje všetky vlastnosti objektu vybraného v hierarchii alebo na ploche a umožňuje ich upravovať, dopĺňať alebo mazať.
  4. Herné okno – zobrazuje herný svet, ktorý je viditeľný pre kameru a umožňuje vám vybrať veľkosť okna virtuálnej hry na testovanie v pixeloch. Umožňuje vám tiež aktivovať rozšírenie okna hry v plnej veľkosti (Maximize on Play) a povoliť / zakázať zobrazovanie rôznych informácií pre vývojára.
  5. Okná projektu a konzoly. Okno projektu sa používa na navigáciu medzi zdrojmi projektu: nahrané obrázky, zvuky, modely atď. Aj pomocou tohto okna (kontextové menu) môžete vytvárať nové prázdne herné objekty rôznych typov a skriptov. Okno konzoly sa používa na zobrazenie chybových hlásení (červená), varovaní (žltá) a rôznych vami požadovaných informácií na ladenie (sivá).
  6. Okno Assets Label je spodná časť okna inšpektora, ktorá zobrazuje náhľad objektu alebo súboru vybraného v okne Project.

Okrem všetkého vyššie uvedeného venujte pozornosť trom tlačidlám v strede hore. Umožňujú vám spustiť projekt, pozastaviť ho (niekedy užitočné napríklad pri ladení, aby ste videli, čo sa robí v Hierarchii) a podľa toho ho aj vypnúť.

Vytvoríme simulátor hudobného nástroja: indické ľudové bubny s názvom "tabla", preto na začiatok vytvoríme v projekte dva prázdne priečinky, do ktorých budú uložené zvuky a obrázky. Nový priečinok môžete vytvoriť vyvolaním kontextového menu v okne Project Navigator a výberom položky "Folder" zo zoznamu "Create".

Tu stojí za to povedať pár slov o tom, ako by mali byť tieto priečinky pomenované. Pre jednoduchú hru, ako je náš simulátor, v zásade môžu byť priečinky "pomenované" ako chcete, existujú však najmenej dva názvy, ktoré je lepšie nepoužívať, pretože sú rezervované motorom. Ide o názvy Resources a Plugins. Vo veľkých projektoch sa priečinok Zdroje vytvorí okamžite a všetky herné „náhradné diely“ (obrázky, zvuky, modely, textúry a prefabrikáty) sú už uložené v ňom (zoradené podľa podpriečinkov). V Plugins, ako už názov napovedá, sú uložené všetky doplnkové sady funkcií tretích strán (tzv. „assets“ (assets)), ktorých je na Asset Store – obchode pre rozšírenia pre Unity3D – pomerne veľa.

Importovanie súborov a vytváranie herných objektov

Pred vytvorením nového herný projekt je žiaduce vopred pripraviť všetky súbory potrebné na jeho prevádzku. V našom prípade sú tieto súbory obrázky a zvuky. Najjednoduchší spôsob, ako ich importovať do projektu, je jednoducho ich pretiahnuť do požadovaného priečinka. Začnime s obrázkami...

Keď sa obrázky objavia v našom priečinku Obrázky, je potrebné ich trochu upraviť:

Faktom je, že Unity3D štandardne komprimuje všetky obrázky pridané do projektu so stratou kvality. Ak takúto stratu nepotrebujeme (platí to najmä pre hry s HD grafikou), mali by sme vybrať každý obrázok a v okne Inšpektor zmeniť hodnotu parametra "Formát" z "Compressed" na "Truecolor" v "Default" ". Možno budete musieť zmeniť aj parameter „Max Size“, ak je menší ako skutočná šírka obrázka (predvolená hodnota je 1024 pixelov). Po všetkých zmenách si musíte pamätať, že musíte kliknúť na tlačidlo "Použiť", aby ste ich použili. V prípade potreby vykonáme podobné akcie pre všetky ostatné obrázky.

Teraz vytvoríme herné objekty z našich obrázkov. Ak to chcete urobiť, jednoducho presuňte požadovaný obrázok do okna Hierarchy. Obrázok alebo 3D model sa automaticky prevedie na herný objekt a zobrazí sa v počiatočnom súradnicovom bode pred kamerou.

V prvom rade sme pridali obrázok na pozadí, ktorý by sa mal zobraziť na celej obrazovke. Či je to tak, môžete skontrolovať tak, že vyberiete kameru v okne hierarchie a pozriete sa, ako sa zobrazuje jej rám. Na snímke obrazovky vyššie môžete vidieť, že časť nášho pozadia zostáva mimo pohľadu kamery, takže musíme upraviť veľkosť tohto pohľadu potiahnutím rámu priamo na scéne alebo úpravou parametra „Size“ v okne Inspector. V našom prípade sme museli zmeniť predvolenú hodnotu (5) na 5,4.

To je všetko, už sa nedotýkame fotoaparátu, ale pridávame a upravujeme zvyšok obrázkov. Pri pridávaní vidíme, že niektoré sú pre našu hru príliš veľké. Zmenšiť ich môžete buď fyzicky v grafickom editore, alebo pomocou enginu. Skúsme posledný spôsob. Ak to chcete urobiť, vyberte obrázok v okne Hierarchy a v okne Inšpektor zmeňte hodnoty „Mierka“ pre súradnice X a Y z 1 na 0,5 (to znamená, znížte na polovicu). Na tom istom mieste je žiaduce, aby sa predišlo prekrývaniu, priradiť všetkým herným objektom (okrem pozadia) nenulové poradie vrstiev (Poradie vo vrstve):

Posledným krokom pri príprave herných predmetov z obrázkov budú „zavesené“ kolízie na ne. V Unity3D sa ako detektory interakcie medzi objektmi používajú zrážacie zariadenia. To znamená, že na náš obrázok je vložená virtuálna škrupina, ktorá dokáže zaregistrovať dotyky.

Ak chcete pridať urýchľovač k objektu, vyberte ho v okne Hierarchia a potom kliknite na tlačidlo "Pridať komponent" v okne Inšpektor. V zozname komponentov, ktorý sa objaví hľadáme Physics 2D (bežná 3D fyzika v našom režime nebude fungovať) a zo všetkých možností je pre nás najvhodnejší „Circle Collider 2D“. Vyberáme si ho. Okolo nášho objektu sa objaví zelená čiara, ktorá zobrazuje hranice zrážača. Zostáva iba začiarknuť políčko „Is Trigger“, aby náš zrážač registroval iba kliknutia a už neinteragoval s okolitým herným priestorom:

Podobné akcie sa opakujú pre všetky zostávajúce objekty. Len naše pozadie sa bude líšiť od ostatných objektov. Na tento účel použijeme Box Collider 2D a nastavíme pozíciu Z na väčšiu ako nula, aby sa zrážač a samotné pozadie posunuli do pozadia (budeme to potrebovať neskôr).

Práca so zvukom

So zvukom v Unity 3D je na prvý pohľad všetko trochu mätúce. Ale skúsme na to prísť po poriadku :)

Najprv musíme pretiahnuť všetky zvuky do priečinka Zvuky a tiež ich trochu upraviť:

Ak je na začiatku nastavená úroveň hlasitosti všetkých vašich zvukov, potom všetko, čo musíte urobiť, je vypnúť 3D spracovanie zvuku. V 3D hrách je toto spracovanie potrebné, aby sa simulovalo priblíženie zdroja zvuku, keď sa k nemu priblíži kamera. Ale v 2D to nepotrebujeme, takže postupne vyberieme každý zvuk a zrušíme začiarknutie políčka "3D zvuk".

Teraz môžeme začať pridávať zvuky do herných objektov. Aby sme to dosiahli, musíme postupne vybrať každé tlačidlo a pridať k nemu nový komponent "Zdroj zvuku" zo sekcie "Audio". Po pridaní komponentu vyberte príslušné tlačidlo "Audio Clip" a zrušte začiarknutie políčka "Play On Awake" predvolene aktívne (prehrať, keď sa objaví):

Keď sú všetky zvuky pripojené k správnym tlačidlám, je čas na zábavnú časť - skriptovanie...

Prvý skript

Skôr než začneme analyzovať náš prvý skript, pravdepodobne stojí za to povedať pár slov o systéme skriptovania v samotnom Unity 3D.

Unity vám umožňuje písať kód v troch jazykoch naraz: JavaScript (presnejšie jeho mierne upravená verzia UnityScript), C # a Boo. V mnohých knihách a sprievodcoch sa môžete stretnúť s názorom, že pre začiatočníkov je jednoduchšie zvládnuť skriptovanie v Unity pomocou JavaScriptu ako príkladu. Tento jazyk však nie je taký pohodlný ako ostatné a v budúcnosti sa s najväčšou pravdepodobnosťou budete musieť znova učiť. Preto je lepšie začať ihneď s učením C # (Boo je tiež dobré, ale je na ňom málo školiacich materiálov).

Teraz o tom, kam napísať kód. Predvolený editor kódu v Unity 3D je MonoDevelop IDE. Výhodou tohto vývojového prostredia je, že má rady pre rýchle zadávanie štandardných metód, tried a funkcií, ako aj systém kontroly syntaxe. Pre mňa však nevýhodou bola objemnosť a vysoká náročnosť zdrojov. Našťastie v nastaveniach Unity sa dá ako textový editor nastaviť čokoľvek, a tak som si pre seba „zavesil“ odľahčený a funkčný Notepad ++ (ukážu sa v ňom takmer všetky príklady).

A posledný. Prirodzene, bez referenčných materiálov pri zvládnutí všetkých zložitostí motora sa ďaleko nedostanete, takže tu je zoznam niekoľkých rozumných internetových zdrojov na tému Unity 3D:

  • http://docs.unity3d.com/ru/current/Manual/UnityManualRestructured.html - oficiálna príručka pre motor s čiastočným prekladom do ruštiny (objavila sa nedávno a niekedy je nestabilná);
  • http://docs.unity3d.com/ru/current/ScriptReference/index.html – oficiálny referenčný manuál skriptovania v angličtine;
  • http://unity3d.ru/distribution/index.php - ruské fórum pre vývojárov Unity 3D;
  • http://habrahabr.ru/post/141362/ - séria lekcií o vytváraní trojrozmerných hier na Habrahabr;
  • http://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx – oficiálna referencia C# spoločnosti Microsoft v ruštine.

No, aby som to dlho nenaťahoval, navrhujem okamžite vytvoriť prvý skript. V rámci skriptov, ak ich je veľa, je lepšie prideliť samostatný priečinok, ale naša hra bude jednoduchá, takže môžeme vytvoriť skript priamo v koreňovom priečinku projektu. Ak to chcete urobiť, zavolajte do kontextového menu v okne Projekt, vyberte zoznam Vytvoriť a kliknite na „C# Script“. Nazvime náš nový skript napríklad Zvuky a otvoríme ho dvojitým kliknutím. Po odstránení štandardných metód Update a Start a po zaregistrovaní potrebných metód dostaneme nasledujúci skript:

Ak ste neprekonfigurovali editor, náš skript sa otvorí v MonoDevelop. Poďme sa pozrieť na jeho štruktúru...

V skutočnosti sa každý skript C# skladá z troch hlavných častí:

  1. Úplne hore sú uvedené knižnice, ktoré je potrebné pripojiť, aby skript fungoval (napríklad „použitie Unity.Engine“ prepojí prácu samotného enginu a „použitie System.Collections“ – knižnica obsahujúca číslo vstavaných tried, aby skript fungoval pod rôznymi systémami).
  2. Deklarácia triedy a premennej. V C# ako taký neexistuje koncept skriptu. Namiesto toho sa používa pojem „trieda“, ktorý zahŕňa množstvo metód a funkcií. Aj keď v skutočnosti je to v kontexte Unity 3D takmer to isté :) Hlavná vec na zapamätanie je, že názov triedy sa musí zhodovať s názvom, ktorý sme dali skriptu. Zvláštnosťou premenných v C# je, že musia byť (okrem dočasných, ktoré sú deklarované v samotnom skripte) napísané. V praxi to znamená, že pre premennú je potrebné zadať úroveň prístupu (private alebo public) a typ (int, float, bool alebo, ako máme v skripte, AudioClip), zároveň je možné zadať ľubovoľný názov premennej Alebo mu môžete okamžite priradiť hodnotu.
  3. Súbor metód a funkcií. Metóda v C# je takmer každá funkcia, ktorá vykonáva určité akcie. Principiálne sa v literatúre o Unity 3D nazývajú funkcie, ale ak hovoríme o C # ako samostatnom programovacom jazyku, tak to sú predsa metódy :). Čisté funkcie v Unity sú napríklad štandardné funkcie na výstup zvuku, kreslenie prvkov GUI a pod., ktoré sa používajú vo vnútri metód.

Keď teraz poznáme štruktúru skriptu, je ľahké pochopiť jeho význam, ktorý sa scvrkáva na nasledovné... V triede Sounds (skript) deklarujeme 9 premenných typu AudioClip s názvami, ktoré potrebujeme pre pohodlie ich rozlišovanie. Robíme ich nevyhnutne verejné (súkromné ​​sa v editore nezobrazia a zvuky na ne budeme musieť „zavesiť“ cez editor). A potom v tele skriptu použijeme štandardnú metódu "void OnMouseDown ()". Predtým bol zodpovedný iba za spracovanie kliknutia myšou, no v nových verziách sa interpretuje aj ako dotyk na dotykovú obrazovku. Do nej zapíšeme podmienky, ktorými skontrolujeme názvy stlačených urýchľovačov a ak zistíme stlačenie niektorého z nich, vydáme príslušný zvuk (použijeme štandardnú funkciu audio.PlayOneShot();).

Pri písaní kódu dávajte pozor, aby ste zahrnuli všetky otváracie a zatváracie zátvorky, inak budete neustále dostávať chybové hlásenia v konzole a nebudete môcť svoj projekt vôbec spustiť! Pozor aj na používanie veľkých písmen v názvoch metód a funkcií. Často sú tiež príčinou chýb. A samozrejme dodržiavať všetky znaky (bodky, dvojbodky a zátvorky), skrátka syntax jazyka. Spočiatku to bude ťažké, ale časom začnete písať od nuly bez chýb!

Keď je skript pripravený, vyberte ho a v okne Inspector priraďte každej premennej iný zvuk. Teraz už len musíme použiť náš skript na objekty v scéne. Najjednoduchší spôsob, ako to urobiť, je opäť pretiahnuť skript priamo na požadovaný objekt hry v zozname Hierarchy:

Ak bol skript pretiahnutý správne, mal by sa objaviť v okne inšpektora vedľa objektu, na ktorý sme ho pretiahli. Podľa toho pretiahneme skript ku všetkým objektom, ktoré by mali v hre znieť a môžeme ho skúsiť spustiť. Keď kliknete na naše herné tlačidlá, teraz konečne zaznie špecifikovaný zvuk!

Úvod do GUI

V princípe už u nás funguje Hra, no akosi je príliš „plešatá“. Niečo v ňom chýba ... Alebo aspoň nápis s menom, ktorý je pred nami! Inými slovami, musíte implementovať nejaký druh zrozumiteľného používateľského rozhrania.

GUI je vlastne skratka pre angličtinu. „Graphical User Interface“, teda grafické používateľské rozhranie. Tradične obsahuje také komponenty ako:

  • gombíky;
  • okno;
  • textové oblasti;
  • začiarkavacie políčka a/alebo prepínače;
  • posúvače (posúvacie lišty) atď.

V Unity 3D je toto všetko (a dokonca aj niečo viac) plne prítomné. Hlavná vec je naučiť sa ho používať! Poďme sa pozrieť na to, ako môže GUI Unity vytvoriť jednoduchý nadpis.

Ak to chcete urobiť, vytvorte nový skript s názvom Rozhranie a upravte ho takto:

Pozorne zvážte skript na snímke obrazovky. Tu píšeme len jednu verejnú premennú typu GUIStyle, ktorá je pre nás novinkou. Tento typ umožňuje vizuálne zmeniť vzhľad prvkov, ktorým je tento štýl priradený. Štýly sú užitočné, ak existuje veľa prvkov rozhrania rovnakého typu (napríklad tlačidlá), ale mali by mať odlišný vzhľad.

Ďalej si vytvoríme tlačidlo ("GUI.Button"), ktoré má nasledovnú syntax: podmienka - 4 súradnice (horizontálne odsadenie od ľavého okraja, zvislé odsadenie od horného okraja, šírka, výška) - viditeľný text v úvodzovkách a ďalej , voliteľne, označenie štýlu. Potrebné funkcie sú zapísané vo vnútri tlačidla. V našom prípade sme zaregistrovali prechod na stránku vývojárov („Application.OpenURL("");").

GUI skripty môžu fungovať z ľubovoľných herných objektov, ale zvyčajne sa im odporúča „zavesiť“ ich na kameru, čo urobíme pretiahnutím skriptu na objekt Main Camera. Teraz, ak ju vyberieme v okne Hierarchy, tak v okne Inspector budeme môcť vidieť verejnú premennú nášho štýlu, jej rozšírením získame plný prístup k nastaveniam tohto štýlu!

Farbu a textúru textu vieme určiť pre pozadie v akejkoľvek situácii (pre tlačidlo je potrebné zaregistrovať jeho tri možnosti (Normálne - normálne zobrazenie, Hover - pri umiestnení kurzora myši a Aktívne - po kliknutí), nastaviť odsadenie a upraviť písmo. V predvolenom nastavení je jediným dostupným písmom v Unity 3D písmo Arial, avšak do projektu môžete manuálne načítať akékoľvek iné písmo a použiť ho v poli „Font“ a nastaviť všetky súvisiace parametre.

Čo je zaujímavé a zároveň nie veľmi pohodlné je, že prvky GUI sa na scéne nezobrazujú, kým nespustíme projekt, takže úprava parametrov každého prvku môže zabrať veľa času. Poďme spustiť projekt a uvidíme, ako bude vyzerať naše tlačidlo vytvorené vyššie:

Zmena rozhrania podľa podmienok a statických premenných

Už sme toho urobili veľa, ale vždy je čo zlepšovať :) Preto ako posledný príklad navrhujem vytvoriť pomocné okno, ktorým bežne vývojári dodávajú svoje hry a aplikácie. Ak to chcete urobiť, pridajte do priečinka s obrázkami obrázok pre takéto tlačidlo vo forme otáznika a vytvorte z neho herný objekt. Zavesme naň zrážač a napíšme skript s názvom, napríklad „Pomoc“ s nasledujúcim obsahom:

V tomto skripte máme dve premenné. Prvá premenná definuje vzhľad, ktorý sa použije pre všetky prvky rozhrania opísané v tejto triede. Na rozdiel od štýlov, o ktorých sme hovorili vyššie, vzhľady umožňujú zmeniť vzhľad nielen jednotlivého prvku, ku ktorému sú priradené, ale všetkých prvkov určitého typu naraz. Navyše, na rozdiel od štýlov, skiny nie sú priradené k prvkom, ale sú deklarované okamžite pre celú metódu a fungujú, kým nie je deklarovaný iný skin. Mali by ste tiež pamätať na to, že vzhľady existujú nielen ako premenné, ale aj ako samostatné súbory. Preto pred deklarovaním vzhľadu ho musíte okamžite vytvoriť v okne "Projekt" z kontextového menu: "Vytvoriť" - "GUI Skin".

Druhá premenná, ktorú máme, je logická (alebo inak booleovská). Môže mať iba dve hodnoty: „true“ (true) alebo „false“ (false). Vďaka svojej binárnej povahe je takáto premenná ideálna na implementáciu všetkých druhov prepínačov. V našom prípade bude zodpovedný za zobrazenie textu popisujúceho našu hru.

Ak sa však pozriete pozorne, všimnete si, že posledná premenná má jeden úžasný parameter – „statický“. Pridanie tohto parametra do premenných vám umožní urobiť ich statické a pristupovať k nim z iných skriptov!

Ale späť k zvyšku kódu. Metóda „void OnMouseDown()“, ktorá je nám tu už známa, poslúži ako prepínač premennej „isVisible“ pomocou jednoduchej podmienky. Po podmienke je však ešte jedna funkcia. Táto funkcia ("Debug.Log();") sa používa na výstup "za behu" do konzoly hodnôt premenných, ktoré potrebujeme (zadávame ich bez úvodzoviek v zátvorkách). Ako vidíte, vo vnútri funkcie môžete kombinovať nemenný text (napísaný v úvodzovkách) aj premenné (bez úvodzoviek). Hlavná vec je, že medzi všetkými údajmi by malo byť znamienko "+".

Ďalej v texte skriptu máme metódu na kreslenie rozhrania ("void OnGUI()()"), v ktorej vidíme deklaráciu nového vzhľadu ("GUI.skin = HelpSkin;") a nový prvok rozhrania typu GUI.Box. Na rozdiel od tlačidla je rámček neaktívnym prvkom a zvyčajne slúži na zobrazenie rôznych textových alebo grafických údajov.

Venujte pozornosť tomu, ako sme nastavili umiestnenie krabice. Všetky hodnoty tu nie sú špecifikované priamo, ale pomocou matematických výrazov, ktoré sú v skutočnosti analógom „tekutého rozloženia“ pri vývoji webu. Problémom je, že pri zadávaní presných veľkostí GUI prvkov pri rôznych rozlíšeniach obrazovky sa neprispôsobia a môžu byť buď príliš malé, alebo naopak veľké. V ďalšej verzii enginu vývojári sľubujú, že GUI prispôsobia, ale zatiaľ musíme zvrhnúť :(

Posledným krokom na ceste k úspechu bude prispôsobenie našej pleti. V premennej skriptu zadáme súbor vzhľadu a potom tento súbor vyberieme v okne projektu. Rovnako ako pri iných súboroch, nastavenia vzhľadu sa zobrazia v okne inšpektora. Tu hľadáme prvok, ktorý sa môže zmeniť (v našom prípade Box), otvoríme ho a nastavíme rovnakým spôsobom ako vyššie uvedený štýl:

Ak chcete zistiť, či náš skript funguje správne, spustite projekt a skúste kliknúť na tlačidlo pomocníka:

Teraz všetko funguje, ale nie je vždy vhodné stlačiť tlačidlo pomocníka, aby ste skryli popis späť. Je skôr zvykom strčiť akékoľvek upozornenia do ľubovoľného voľné miesto než mierenie na tlačidlá. A práve tu treba využiť fakt, že premennú „isVisible“ sme spravili statickou, ako aj zrážač zavesený na obrázku na pozadí...

Vráťme sa k nášmu úplne prvému skriptu („Zvuky“), ktorý sledoval stlačenie tlačidiel na prehrávanie zvukov. Bude nám stačiť napísať do nej iba jeden riadok (presnejšie do metódy "void OnMouseDown ()":

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

Týmto riadkom nastavíme podmienku: ak sa názov stlačeného urýchľovača nezhoduje s názvom pomocného tlačidla, potom sa premenná „isVisible“ v skripte „Help“ bude rovnať „false“. Len je potrebné, aby premenná „isVisible“ mala určite postscript „statický“, inak dostaneme chybu.

Teraz pri spustení uvidíme, že naše okno pomocníka je zatvorené nielen pri kliknutí na tlačidlo v pravom hornom rohu, ale aj pri dotyku na ľubovoľnú voľnú časť obrazovky. Jediné, čo sa dá vylepšiť, je, aby sa okno po kliknutí skrylo... To bude vaša "domáca úloha";) Môžem len povedať, že GUI box bude potrebné zmeniť na podobne riešené tlačidlo, opäť , s nastavením vzhľadu a predpísaním funkcie, ktorá zmení premennú „isVisible“. Všetko ticho :)

Kompilácia hry a uloženie projektu

Konečne nám všetko funguje! To znamená, že je čas uložiť našu hru a otestovať ju na skutočnom zariadení. Na tento účel je potrebné ho skompilovať do spustiteľného súboru (napríklad pre Windows v EXE a pre Android v APK).

Ak chcete skompilovať hru pre PC, nemusíte robiť žiadne predbežné nastavenia. V prípade Androidu však musíte najskôr pripojiť súpravu Android SDK, ktorú sme si stiahli úplne na začiatku. To sa deje celkom jednoducho: prejdite do ponuky "Upraviť", zavolajte položku "Predvoľby" av okne, ktoré sa otvorí, prejdite na kartu "Externé nástroje". Tu hľadáme riadok „Android SDK Location“ a v ňom uvedieme cestu k rozbalenému archívu so SDK (pozri snímku obrazovky nižšie). Mimochodom, tu si môžete zmeniť aj štandardne aktívny monštruózny textový editor MonoDevelop na váš obľúbený :)

A teraz nastal okamih pravdy! Prejdite do ponuky „Súbor“ a vyhľadajte tam položku „Nastavenia zostavenia“. V okne, ktoré sa otvorí, budeme musieť okamžite pridať scény pre zostavu. Ak existuje iba jedna scéna (ako v našom projekte), potom bude stačiť kliknúť na tlačidlo „Pridať aktuálnu“. Ak ich je niekoľko, budete musieť každú z nich otvoriť a pridať ich do zoznamu scén rovnakým spôsobom a potom pretiahnutím upraviť ich požadované poradie:

Ďalším krokom je vybrať platformu na zostavenie (plánujeme hru pre Android, čo znamená, že si ju vyberieme) a kliknúť na tlačidlo „Nastavenia prehrávača“ nižšie. Okno Inšpektor otvorí množstvo nastavení, z ktorých niektoré sú povinné alebo veľmi žiaduce. Je žiaduce uviesť názvy vývojárskej spoločnosti, programu a jeho ikony (Názov spoločnosti, Názov produktu a Predvolená ikona) v hornej časti zoznamu nastavení.

V spodnej časti v časti „Ďalšie nastavenia“ sú dva povinné parametre: „Identifikátor zväzku“ a „Verzia zväzku“. Predvolená verzia je nastavená na 1.0, ale identifikátor bude potrebné vytvoriť manuálne a pokiaľ možno jedinečný. Mal by pozostávať z troch častí, ktoré sú od seba oddelené bodkami: vyhradené slovo „com“, potom názov vývojárskej spoločnosti a na konci názov samotnej aplikácie.

Ostatné nastavenia zostavy môžete zmeniť podľa vlastného uváženia alebo ich nezmeniť vôbec. Hlavná vec je, že kompilácia už bude môcť začať. Ak to chcete urobiť, stačí kliknúť na tlačidlo "Vytvoriť" v okne "Nastavenia zostavy" a počkať, kým nám program poskytne hotovú aplikáciu zabalenú v súbore APK :)

Záver

Týmto sa končí naša lekcia o vytváraní najjednoduchších aplikácií pre Android. Aby ste si mohli zopakovať všetko, o čom sme hovorili, na konci článku dám odkaz na archív, v ktorom budú uložené všetky zdroje hry ako samostatný priečinok (ak chcete robiť všetko od začiatku) a ako súbor s príponou unitypackage. Ten umožňuje importovať celý projekt do Unity naraz, vrátane závislostí atď.

Ak chcete importovať náš projekt (a, mimochodom, akékoľvek doplnky stiahnuté z internetu alebo z Assets Store), musíte prejsť do ponuky „Assets“, vybrať položku „Import Package“ a v nej „Custom Packege“, potom zadajte cestu k nášmu súboru a stlačte tlačidlo "Importovať". Mimochodom, môžete si vytvoriť úplnú zálohu svojho projektu a uložiť ho v takom jednotnom balíku z rovnakého menu ("Aktíva") kliknutím na položku "Exportovať balík".

Zdá sa, že všetko :) Ako človek, ktorý sám zvládol Unity 3D od nuly, som sa v článku pokúsil odpovedať na maximálny počet otázok a zdôrazniť hlavné nuansy práce s motorom, ktoré sa najprv objavia. Možno to však niekomu nebude stačiť, takže ak máte nejaké otázky, môžete ma kontaktovať buď priamo poštou, alebo na fóre: Pomôžem vám akýmkoľvek spôsobom!

Prajem vám všetkým veľa šťastia a úspešnú realizáciu všetkých projektov!

P.S. Tento článok je povolené voľne kopírovať a citovať za predpokladu, že je uvedený otvorený aktívny odkaz na zdroj a je zachované autorstvo Ruslana Tertyshného.