Prenesite aplikacijo unity 3d za android. Uporaba Unity za razvoj aplikacij. Kako ustvariti igre v Unity

Razvijanje iger za naprave z operacijskim sistemom Android zahteva podoben pristop kot razvijanje za iOS. Po drugi strani pa strojna oprema naprav Android ni podvržena jasnim standardom, zaradi česar je treba rešiti težave, ki jih pri delu z iOS ni. Obstajajo tudi razlike med različicama Unity za Android in iOS.

Priprava razvojnega okolja za Android

Preden lahko preizkusite svoje igre na napravi, boste morali pripraviti svoje razvojno okolje. Zlasti prenesite in namestite Android SDK za želeno platformo in dodajte svojo napravo v sistem (ta postopek je drugačen za Windows in Mac). To je podrobno napisano na spletnem mestu razvijalcev za Android, dodatne informacije pa lahko zagotovi proizvajalec vaše naprave. Ker je to precej zapleten postopek, smo pripravili majhno navodilo, ki vam bo pomagalo pripraviti vse, kar potrebujete za razvoj. Če potrebujete več informacij, jih lahko dobite na portalu za razvijalce za Android.

Dostop do funkcij Androida

Unity ponuja API za dostop do vnosa in nastavitev za Android. Razpoložljivi razredi so dokumentirani na strani Code for Android Assemblies.

Povezovanje kode C, C++ ali Java s skripti

Unity vam omogoča klicanje funkcij, napisanih v C/C++, neposredno iz skriptov (funkcije Java lahko kličete posredno). Če želite izvedeti, kako dostopati do funkcij iz izvorne kode iz Unity, obiščite stran za izdelavo vtičnikov za Android.

Izločanje okluzije (izrezovanje nevidne geometrije)

Unity zagotavlja podporo za izločanje okluzije, kar je zelo uporabno pri optimizaciji za mobilne platforme. Več informacij najdete na strani Izločanje okluzije.

Prilagajanje zagonskega zaslona

Začetni zaslon, ki se prikaže ob začetku igre, je mogoče prilagoditi – za več informacij glejte to stran.

Odpravljanje težav in poročanje o napakah

Obstaja veliko razlogov, zakaj se vaša aplikacija zruši ali ne deluje pravilno. Naš vodnik za reševanje težav, specifičnih za Android, vam bo pomagal odpraviti vzroke napak v najkrajšem možnem času. Če po branju priročnika domnevate, da je težava v Unityju, morate vložiti poročilo o napaki. Za navodila glejte to stran.

Kako se Unity za Android razlikuje od namizne različice

JavaScript z močnim tipkanjem

Za izboljšanje zmogljivosti v različici Unity za Android je dinamično tipkanje v JavaScriptu vedno onemogočeno (kot da bi se #pragma strict samodejno uporabila za vsak skript). To si je pomembno zapomniti, če projekt v Android prenašate s starejših platform in če naletite na napake pri prevajanju, je treba težavo najprej iskati pri tipkanju. Takšne napake je običajno enostavno odpraviti tako, da zagotovite, da so tipi vseh spremenljivk med inicializacijo eksplicitno podani ali pretvorjeni.

Čeprav Unity Android podpira teksture DXT/PVRTC/ATC, bo Unity med izvajanjem razpakral teksture v format RGB(A), če ti načini stiskanja niso podprti v določeni napravi. To lahko resno vpliva na zmogljivost upodabljanja GPE, zato je priporočljiva uporaba formata ETC. To je de facto standard za Android in bi ga morale podpirati vse sodobne naprave. Po drugi strani pa ETC ne podpira kanala alfa in včasih bodo 16-bitne teksture RGBA najboljša izbira glede kakovosti, velikosti in hitrosti upodabljanja, kjer je potreben kanal alfa.

Ogledi objave: 19 374

Pogovarjali smo se o tem, kako lahko ustvarite svojo igro v Androidu z uporabo Unreal Engine. V tem članku si bomo ogledali še en enako priljubljen motor za razvoj iger - enotnost.

Unity je zelo znan motor med neodvisnimi razvijalci. Pravzaprav gre za večplatformni motor, ki vam omogoča razvoj 3D- in 2D-igre. Lastnost, ki ločuje Unity od drugih motorjev, je nizek vstopni prag za začetnike, hkrati pa ima bogat nabor orodij za profesionalce. Navzkrižna platforma vam omogoča razvoj aplikacij za katero koli platformo, od namiznih iger do mobilnih.

Ločeno je treba omeniti naročniški sistem, saj Unity ni popolnoma brezplačen izdelek. Obstaja več vrst naročnin:

  • Osebno. Brezplačna različica, ki vsebuje vse glavne funkcije motorja. Ima naslednjo omejitev: dohodek na leto oziroma višina zbranih sredstev ne sme preseči 100000$ .
  • Plus. per 35 $ ​​na mesec na voljo so različna poročila in analitike, pa tudi možnost spreminjanja pozdravnega zaslona, 20% -th popust pri nakupu v Trgovina s sredstvi in razne manjše ugodnosti. Ima naslednjo omejitev: letni prihodek oziroma višina zbranih sredstev ne sme preseči 200000$ .
  • Pro. per 125 $ na mesec vključuje vse prednosti različice Plus poleg tega pa profesionalne storitve in vrhunska podpora. Ni omejitev glede prometa ali višine sredstev.
  • Ločene različice za podjetja (uporabljajo jih velika podjetja).

Tako bi morali biti neodvisni razvijalci z majhnimi proračuni zadovoljni z različico Osebno oz Plus drugače se boste morali naročiti Pro. V tem članku bomo uporabili brezplačna različica za prvo vožnjo.

1. korak Namestite Unity

Če želite začeti nameščati Unity, morate obiskati spletno mesto Unity Store, kjer boste pozvani, da izberete vrsto naročnine. Kot že omenjeno, izbiramo Osebno.

Nato boste pozvani, da sprejmete pogoje uporabe in prenesete namestitveni program. Lahko se tudi odjavite Sistemske zahteve delati z Unity.

Po zagonu namestitvenega programa boste pozvani, da izberete, katere komponente želite namestiti. Ker moramo ustvariti aplikacijo za Android, bomo označili polje za Podpora za gradnjo Androida. Tudi, če želite, namesto z Unity, lahko namestite Skupnost Visual Studio 2017 za programiranje naprej C#.

Po tem preostane le, da izberete pot namestitve in začnete nameščati Unity.

2. korak: Registracija in nastavitev Unity

Ko končamo namestitev in zaženemo Unity, smo pozvani, da se prijavimo z našim računom.

Potem boste znova pozvani, da izberete naročnino, osredotočili se bomo tudi na Osebno. V tem primeru boste morali potrditi, da je letni dohodek podjetja manjši od 100.000 USD ali da se Unity uporablja za namene usposabljanja.

Na koncu je predlagano, da izpolnite majhno anketo, v kateri morate odgovoriti, kaj počnete in za kakšen namen nameščate Unity.

Korak 3. Ustvarite nov projekt

Ko konfiguriramo Unity, pridemo do zaslona za izbiro / ustvarjanje projekta. Klikni tukaj Novo ustvariti svoje nov projekt.

Po tem boste v oknu, ki se prikaže, morali vnesti ime projekta in imenik, v katerem se bo nahajal. Prav tako ne pozabite potrditi polja 3D za uporabo urejevalnika v 3D načinu.

Ko končate s tem, kliknite Ustvari projekt ustvariti projekt. Po tem se odpre okno urejevalnika z vnaprej ustvarjeno sceno.

Ne bomo se še ukvarjali z zapletenostjo programiranja in vzeli na primer končana igra. Za to obstaja Trgovina s sredstvi, ki vsebuje ogromno že pripravljenih modelov, animacij, zvokov (in celo iger), tako plačljivih kot brezplačnih.

Če želite odpreti Asset Store, morate v meniju Okno izberite Trgovina s sredstvi(kombinacija tipk ctrl-9).

Odprlo se bo okno trgovine. V iskalno vrstico vnesite " primer igre v stilu flappy bird" in odprite brezplačen primer, ki ga bomo uporabili v našem projektu.

Klikanje Prenesi in ko ga prenesete, ga lahko uvozite v svoj projekt. Če želite to narediti, kliknite Uvozi, nato pa se prikaže opozorilo, da bodo nastavitve projekta po uvozu spremenjene.

Ko se strinjate z uvozom, boste videli okno, v katerem morate izbrati, katere komponente želite uvoziti. Izberite vse in kliknite Uvozi.

Ko je uvoz končan, boste v brskalniku projektov videli nove datoteke. To so datoteke igre. Če želite odpreti sceno v urejevalniku, razširite Flappy Bird slog - prizorov in dvokliknite na Glavni.

Posledično se bo prizor igre prikazal v oknu 3D urejevalnika.

Kako igra deluje kar v Unityju, lahko preverite s klikom na gumb igrati nad oknom urejevalnika.

4. korak Konfigurirajte orodja Android

Opomba:če uporabljate android studio, potem imate že vse nameščeno potrebne komponente in tako lahko varno nadaljujete na naslednji korak.

Če želite sestaviti nastalo igro v sistemu Android, morate namestiti naslednja orodja:

  • Java Development Kit (JDK). Lahko ga prenesete s spletnega mesta Java. S klikom na povezavo boste videli čisto na vrhu Platforma Java (JDK), kliknite na Prenesi poleg napisa izberite svoj operacijski sistem in začnite s prenosom. Po tem samo sledite navodilom namestitvenega programa.
  • Android SDK. po največ na preprost načinČe želite namestiti najnovejšo različico, morate prenesti Android Studio, s katerim je priložen ta SDK. Če želite to narediti, pojdite na spletno mesto Android Studio in kliknite Prenesite Android Studio. Namestitveni program za Android Studio namesti osnovne komponente Android SDK, potrebne za razvoj Androida.

Korak 5. Pripravite projekt za zagon

Najprej morate spremeniti razvojno platformo v Android. Če želite to narediti, v Unityju odprite meni Datoteka in izberite Nastavitve gradnje.

V oknu, ki se prikaže, izberite Android in nato pritisnite preklopite platformo.

Preklop platforme nam pove, da bomo izdelali aplikacijo za Android. To pomeni, da bo Unity ustvaril, ko zgradimo aplikacijo APK datoteko. Preklop platforme tudi prisili Unity, da ponovno uvozi vsa sredstva v projektu. Pri majhnem projektu to ne bo trajalo dolgo, vendar ne pozabite, da lahko ta operacija pri velikih projektih traja dolgo.

Zdaj moramo zagotoviti ime paketa za aplikacijo.

Opomba: Ime paketa je edinstven identifikator za aplikacijo in je zapisano v obratnem slogu DNS v formatu com.CompanyName.ProductName. Ko je aplikacija objavljena v Googlu Play, imena paketa ni več mogoče spremeniti.

Če želite to narediti, pojdite v meni Uredi in izberite Nastavitve projekta - predvajalnik.

Na desni strani Unityja se odpre okno z veliko različnimi nastavitvami, kot so različica aplikacije, ciljni in minimalni SDK, izbira ikon itd. Tukaj potrebujemo v bloku Druge nastavitve najti Identifikacija in v polje nastavite ime paketa ime paketa. Če želite, lahko spremenite tudi druge nastavitve.

Zdaj je ostalo le še določiti pot do Android SDK in JDK. Če želite to narediti, pojdite v meni in izberite Urejanje-Nastavitve.

V oknu, ki se prikaže, pojdite na Zunanja orodja in na poljih SDK in JDK določite ustrezne poti in nato zaprite okno.

6. korak: Izgradnja in zagon aplikacije

Čas je, da zgradite svojo prvo aplikacijo Unity. Če želite to narediti, izberite v meniju Datoteka – Nastavitve gradnje. Odpre se okno, v katerem boste morali dodati sceno, ki jo želite sestaviti. Ker imamo ta prizor že odprt v urejevalniku, samo kliknite Dodajte odprte scene da ga dodate v sklop, ko ga dodate, ga boste videli na seznamu prizorov.

Ostaja samo pritisniti Zgradite, nato pa bo Unity začel graditi aplikacijo. Pred tem boste morda pozvani, da izberete mapo, v katero bodo shranjene zbrane datoteke aplikacij, in ime datoteke APK.

Opomba: trenutno, če imate različico alfa nameščeno v Android SDK Orodja za gradnjo(različica 28.0.0-rc1), pri gradnji Gradle bo prišlo do napake. Če želite to popraviti, preprosto odstranite to različico iz Android SDK.

Posledično se bo zgrajena datoteka APK pojavila v mapi, ki ste jo navedli, in bo pripravljena za namestitev v emulator ali v pravo napravo.

Poglejmo, kaj je znotraj vgrajenega APK-ja. Če želite to narediti, uporabljamo pripomoček APK analizator, ki je vključen v Android Studio,

Velikost nestisnjene datoteke APK je 21,1 MB, v stisnjenem 20,9 MB. Kot lahko vidite na grafu, večino obsega zasedajo knjižnice tretjih oseb, ki jih je dodal Unity. Nato noter sredstev se nahajajo vsi viri, ki se uporabljajo v sestavljeni sceni. mapa razredi.dex vsebuje samo 89 razrede in 479 metode.

Poleg tega, če pogledate AndroidManifest.xml, je aplikacija sestavljena iz ene aktivnosti.

Zaključek

To je vse. V tem članku smo se naučili, kako namestiti in konfigurirati Unity, prav tako pa smo izdelali svojo prvo aplikacijo za Android.

Unity je motor, na katerem deluje večina sodobne igre na različnih platformah. Preko motorja je resnično mogoče ustvariti igre, ki so usmerjene na delovanje na računalnikih (Windows, Linux, MacOS), Mobilni telefoni, tablični računalniki (Android, iOS) in celo igralne konzole PlayStation, Xbox, Nintendo.

Kako ustvariti igre v Unity?

Unity temelji na konceptu, ki je usmerjen v komponente. Pravzaprav je vsaka igra sestavljena iz množice predmetov, razredčenih z dodatnimi komponentami. Na primer, med ustvarjanjem platformerja ustvarimo GameObject, nanj dodatno dodamo grafično komponento, ki je odgovorna za prikaz lika, in kontrolno komponento, ki omogoča upravljanje lika s pomočjo miške, tipkovnice, igralne palice oz. zaslon na dotik. Motor ne nalaga omejitev glede števila takih modulov. GameObjectu lahko dodamo poljubno število komponent. Vse delo na motorju temelji na samem ustvarjanju GameObject in aplikaciji ustreznih komponent nanje.

Začetnike lahko zavede navidezna preprostost postopka, čeprav temu ni tako. Če želite ustvariti edinstveno in priljubljeno igro, morate napisati veliko komponent iz nič. Natančneje, v okolju Unity se to imenuje skript. Izvorni skriptni jezik je C#, vendar se delno uporabljata tudi JavaScript in Boo (izrezana različica Pythona). Izdelava lastnih komponent ni enostavna, lahko bi celo rekli, da gre za kompleksen postopek, neposredno vezan na klasično programiranje. Brez zadostnega znanja programiranja bo težko.

Podprte platforme

Številni veliki projekti imajo raje Unity zaradi ogromnega seznama platform, združljivih z motorjem. Končano aplikacijo lahko zaženete v katerem koli računalniškem operacijskem sistemu, priljubljenih mobilnih platformah in SmartTV. Kaj naj rečemo, celo brskalniške igre in aplikacije za določene platforme ( kot Tizen OS) so pretežno razviti v Unity.

Vendar tukaj ni vse tako gladko. Po potrebi lahko napišete posebne algoritme, ki temeljijo na kodi nizke ravni, za isti Android morate imeti temeljito znanje Jave.

Enako velja za iOS. Druga značilnost iOS-a je, da ga je mogoče razviti samo iz računalnika ali tablice podjetja Apple. V odsotnosti Macbooka ali podobne naprave se bo izdaja igre hitro ustavila in Unity nima nič s tem, Apple sam nalaga podobno omejitev. Zaključek je preprost: če je v načrtih razvoj iOS-a, morate vnaprej izbrati ustrezno napravo za montažo.

Kako in kje razviti igro na motorju?

Izvajamo lahko dolg proces razvoja iger tako znotraj Windows kot Mac OS X. Obstajajo že različice urejevalnika za Linux, vendar zaenkrat ne moremo računati na njihovo stabilno delovanje. Razvijalec večino časa porabi za ustvarjanje igre znotraj urejevalnika Unity. Še vedno imamo veliko časa za pisanje skriptne kode, ustvarimo jo lahko v standardnem MonoDevelop ali v katerem koli urejevalniku tretje osebe. Zdaj aktivno uporabljajo Visual Studio, pa tudi Sublime Text, vendar le z ustrezno konfiguracijo.

Razvoj mobilne aplikacije je eden najbolj donosnih poklicev v računalniški industriji. Ustvarjanje igre za Android stane na stotine ali tisoče dolarjev, dobiček pa lahko doseže tudi milijon dolarjev. V zvezi s tem se veliko ljudi zanima za razvoj aplikacij za telefon. V tem članku se boste naučili, kako ustvariti igro za Android iz nič z računalnikom, kateri motor in oblikovalec je bolje izbrati.

nič uspešna igra ne more brez čudovite grafike, zato je ustvarjanje dizajna ena najpomembnejših stopenj razvoja. Zasnova v operacijskem sistemu Android se izvaja z uporabo "projektnega dokumenta" ali oblikovalskega dokumenta. Morate začeti ustvarjati igračo z njeno podrobno študijo. Datoteka vsebuje:

  1. Objektni modeli;
  2. Funkcionalne specifikacije;
  3. Vsebina igre;
  4. Vmesnik.

Razmislimo o vsaki od točk podrobneje.

Objektni modeli

To so informacije o funkcionalnosti posameznega elementa. Objektni modeli so odgovorni za možnost nakupa in prodaje predmetov ter za izboljšanje igralnih lastnosti likov.

Funkcionalne specifikacije

Opisuje igranje, glavne značilnosti vsakega lika. Opisuje tudi lastnosti predmeti igre- orožje, kompleti prve pomoči, oklepi in drugo. V bistvu so funkcionalne specifikacije pravila, po katerih proces igre. Bolje ko je ta del razdelan, lažje bo ustvariti visokokakovostno igro za Android.

Vsebina igre

To je besedilno polnjenje igre. Opisuje dialoge likov in katera orožja je mogoče uporabiti za škodo, koliko zdravja bo vzel udarec, katere lastnosti se bodo povečale pri uporabi različne opreme. Vsebuje tudi natančen opis vsak predmet.

Vmesnik

Vmesnik je način interakcije uporabnika z igro. Vključuje gumbe, s katerimi lahko upravljate lik, in odseke menija: na primer predvajanje, rezultat, nastavitve, najboljši igralci, pomoč. Če nimate izkušenj z ustvarjanjem aplikacij za Android, preden ustvarite svoje, prenesite s Play Market in analizirajte priljubljene igre in prenesite najboljše rešitve v svoj projekt.

Igralni motor

Jedro vsake igre je motor. to programsko opremo, kar vam omogoča, da ga razvijete in zaženete. Vsebuje celo vrsto programov, vključno z motorjem za upodabljanje, fizikalnim motorjem, zvokom, animacijo in še mnogo več. Da bi olajšali postopek pisanja programov, razvijalci tretjih oseb ustvarijo lastne igralne motorje posebej za aplikacije Android.

Vsak od njih ponuja različne funkcije: nekateri so zasnovani za 3D, drugi za 2D, podprta je lahko več platform. Takšnih motorjev je ogromno, a če ste začetnik, je bolje izbrati enega najbolj priljubljenih, saj bodo tam prisotne vse potrebne funkcije.

UDK

Navor 2d/3d

Kaj je oblikovalec iger?

Constructor je program, ki združuje igralni mehanizem in integrirano razvojno okolje. Konstruktor naredi razvojni proces dostopen ljudem, ki nimajo znanja programiranja. Nekateri oblikovalci vam omogočajo ustvarjanje iger določenih žanrov, drugi imajo največjo funkcionalnost, vendar stanejo veliko več denarja. Za ustvarjalca začetnika mobilnih aplikacij je izbira oblikovalca eden najpomembnejših trenutkov, saj bo od njegovih zmogljivosti odvisna usoda prihodnje aplikacije.

Konstruktor vam omogoča ustvarjanje iger različnih žanrov za Windows, Android in iOS. Ponudbe velika izbiraže pripravljene lokacije, predmete, like in zvočno zasnovo, tako da ustvarjanje prve igre Android ne bo vzelo veliko časa. Uporabniki, ki poznajo programska jezika JS in C++, lahko uporabljajo vdelani GML. Edina pomanjkljivost je, da program ni preveden v ruščino.

Zaključek

Ustvarjanje igre za Android ni enostaven, a zelo donosen posel. Če se odločite razviti igro in z njo zaslužiti, najprej razdelajte idejo. Nato napišite "dokument o oblikovanju" in se odločite za motor igre, ki lahko poveča svoj potencial. Po tem lahko nadaljujete neposredno z ustvarjanjem aplikacije v konstruktorju.

Video

Če želite izvedeti več o procesu ustvarjanja iger za Android, si oglejte serijo videoposnetkov, posvečenih tej dejavnosti.

Kako hitro napisati igro za Android z Unity

Trenutno lahko vsakdo postane uspešen razvijalec mobilnih iger ali aplikacij brez ogromnega truda. Primer takega primera je Dong Nguyen, ki je razvil Flappy Bird. Igra ni imela zapletene mehanike ali grafike, vendar ji to ni preprečilo, da bi postala priljubljena in svojemu ustvarjalcu prinesla petdeset tisoč dolarjev na dan. Vendar v igri ni bilo nič posebnega. Za uspeh je bilo potrebno samo biti na pravem mestu ob pravem času in malo sreče. Danes se lahko zgodijo podobne stvari, le prava ideja je potrebna.

Da bi pokazali, kako enostavno je napisati kaj takega, bomo danes napisali lastnega Flappy Birda z uporabo Unity v samo 10 minutah.

igralni lik

Najprej ustvarite nov projekt in se prepričajte, da je izbrana možnost 2D.

Naložite svoj ptičji duh v sceno. Ne pozabite vklopiti svoje domišljije!

Nato prilagodite velikost sprite po svojih željah, tako da ga povlečete za vogal v želeno smer. Sprite mora biti viden v hierarhičnem oknu na levi. V njem so vidni vsi predmeti v sceni, trenutno pa bi morala biti samo dva: kamera in ptica.

Povlecite kamero do ptice in jo spustite. Kamera naj bo pod ptico, kar pomeni, da je zdaj kamera "otrok" ptice. Zdaj bo položaj kamere fiksiran glede na ptico. Če se ptica premakne naprej, potem kamera stori enako.

Ponovno izberite ptico v prizorišču ali v hierarhičnem oknu. Videli boste seznam možnosti in atributov na desni v oknu z imenom Inšpektor. Tukaj lahko upravljate različne spremenljivke, vezane na določen objekt.

Zdaj kliknite Dodaj komponento. Izberite Physics2D > Rigidbody2D - to je pripravljen komplet navodila za uporabo gravitacije v našem značaju. Na tej plošči kliknite Omejitve in nato izberite zamrznitev vrtenja Z . To bo preprečilo, da bi se ptica vrtela s kamero.

Na enak način dodajte Polygon Collider, ki Unityju pove, kje so meje lika. Pritisnite Predvajaj in poglejte, kako sprite skupaj s kamero neskončno pada navzdol.

Zaenkrat gre vse dobro!

Zdaj je čas, da začnete leteti z likom, saj ne bo težko.

Najprej morate ustvariti skript C#. Ustvarite mapo zanjo (z desno miškino tipko kliknite nekje v sredstvih in ustvarite mapo »Skripti«), z desno miškino tipko kliknite in izberite Ustvari > Skript C# .

Imenujmo ga "Karakter". Dvokliknite nanj, da ga odprete v svojem IDE-ju, naj bo to MonoDevelop ali Visual Studio. Nato dodajte naslednjo kodo:

Javni razred Znak: MonoBehaviour ( public Rigidbody2D rb; public float moveSpeed; public float flapHeight; // To je za inicializacijo void Start () ( rb = GetComponent(); ) // Posodobitev se kliče enkrat na okvir void Update () ( rb .velocity = new Vector2(moveSpeed, rb.velocity.y); if (Input.GetMouseButtonDown(0)) ( rb.velocity = new Vector2(rb.velocity.x, flapHeight); ) if (transform.position.y > 18 || transform.položaj.y< -19) { Death(); } } public void Death() { rb.velocity = Vector3.zero; transform.position = new Vector2(0, 0); } }

Ta koda naredi dve stvari. Zaradi tega se lik premika naprej s hitrostjo, ki jo določimo v inšpektorju, in daje vtis ptice v letu. Metoda Update() se večkrat kliče skozi igro, tako da se bo vse, kar vnesete sem, neprekinjeno izvajalo. V tem primeru našemu objektu dodamo nekaj hitrosti. Spremenljivka rb je skript RigidBody2D, ki smo ga prej uporabili za naš objekt, tako da, ko pišemo rb.velocity, se nanašamo na hitrost objekta.

Unity si dotik zaslona razlaga kot klik miške, če uporabljate mobilno napravo. Po pritisku prisilimo lik, da se nekoliko dvigne.

Spremenljivka moveSpeed ​​​​bo odgovorna za hitrost gibanja, spremenljivka flapHeight pa za povečanje višine ptičjega leta po vsakem kliku. Ker so te spremenljivke javne, jih lahko spreminjamo zunaj skripta.

Metoda Death() je tudi razglašena za javno, kar pomeni, da jo lahko pokličejo drugi objekti in skripti. Ta metoda preprosto vrne položaj znaka na začetek. Uporabljen bo tudi vsakič, ko lik poleti previsoko ali nizko. Kmalu boste razumeli, zakaj je razglašen za javni. Vrstica rb.velocity = Vector3.zero; potrebno za odstranitev zagona - ne želimo, da lik po vsaki smrti pada hitreje in hitreje, kajne?

Zdaj lahko zapustite IDE in liku dodate skript kot komponento. Če želite to narediti, izberite našo ptico in kliknite Dodaj komponento > Skripti > Znak . Zdaj lahko definiramo moveSpeed ​​​​in flapHeight v inšpektorju (temu so namenjene javne spremenljivke). Dodeli spremenljive vrednosti 3 oziroma 5.

In še nekaj: v inšpektorju morate liku dodati oznako. Če želite to narediti, kliknite tam, kjer piše Oznaka: neoznačeno, in nato na spustnem seznamu izberite Igralec.

Ovire

Zdaj pa dodamo ovire: cevi. Nekdo najde gobe v ceveh, nekdo pa svojo smrt.

Povlecite sprite cevi v sceno, kjer želite, da je prva ovira, in jo poimenujte pipe_up.
Zdaj pa ustvarimo nov skript z imenom Pipe:

Javni razred Pipe: MonoBehaviour ( private Character character; // Potreben za inicializacijo void Start () ( character = FindObjectOfType(); ) // Posodobitev se kliče enkrat na okvir void Update () ( if (character.transform.position.x - transform.položaj.x >

Dodajte ta skript v sprite cevi na enak način kot prej. Tako se bo cev vrnila na zaslon, ko bo zapustila levi rob. Tu še nismo storili ničesar, vendar se bomo k temu vrnili.

Metoda OnCollisionEnter2D() se pokliče vsakič, ko cev komunicira z znakom. Po tem se pokliče predhodno ustvarjena metoda Death(), ki igralca vrne na začetno točko.

Torej, imamo eno cev, ki bo občasno izginila in se znova pojavila na drugem koncu zaslona. Udari jo in umreš.

obrnjene cevi

Trenutno imamo samo enega cevnega duha. Dodajmo še enega. Če želite to narediti, z desno miškino tipko kliknite okno hierarhije, kliknite Nov 2D predmet > Sprite in nato izberite sprite, ki ga želite uporabiti. Še lažje je, če datoteko znova povlecite v sceno.

Poimenujte to sprite pipe_down. V Inspectorju pod Sprite Renderer izberite možnost Flip Y, da cev obrnete na glavo. Dodajte isto RigidBody2D.

Zdaj pa napišimo nov skript C#, imenovan PipeD. Imel bo podobno kodo:

Javni razred PipeD: MonoBehaviour ( private Character character; //To je potrebno za inicializacijo void Start() ( character = FindObjectOfType(); ) // Posodobitev se kliče enkrat na okvir void Update() ( if (character.transform.position. x - transform.position.x > 30) ( ) ) void OnCollisionEnter2D(Collision2D other) ( if (other.gameObject.tag == "Player") ( character.Death(); ) ) )

Montažne konstrukcije

Ta koda nam torej zadošča za izdelavo celotne igre. Cevi lahko premaknemo na desno stran zaslona vsakič, ko izginejo, ali kopiramo in prilepimo poljubno število cevi skozi igro.

Če greste po prvi poti, se prepričajte, da so cevi takoj po naključni generaciji, in težko bi ohranili pravičen potek stvari. Po smrti lika se lahko pojavijo v kilometrih od prve cevi!

Če greste v drugo smer, se bo vse končalo s prekomerno porabo pomnilnika, s posledično upočasnitvijo igre in omejeno vrednostjo ponovnega predvajanja, ker. vedno vse ostane na istem mestu.

Namesto tega uporabimo montažne. Preprosto povedano, naše cevi bomo spremenili v predloge, ki jih bomo nato lahko uporabili za učinkovito ustvarjanje več cevi po želji. Če so tukaj programerji, potem obravnavajte skript Pipe kot razred, cevi pa kot primerke tega predmeta.

Če želite to narediti, ustvarite novo mapo »Prefabs«. Nato povlecite pipe_up in pipe_down iz okna hierarhije v mapo.

Vsakič, ko povlečete predmet iz te mape v sceno, bo imel enake lastnosti, tako da vam ni treba nenehno dodajati komponent. Še več, če spremenite velikost komponente v mapi, bo to vplivalo na vse cevi v igri in vam ne bo treba spreminjati velikosti vsake posebej.

Kot si lahko predstavljate, bo to močno prihranilo naše vire. Pomeni tudi, da lahko komuniciramo s predmeti iz kode. Instanciiramo lahko svoje cevi.

Najprej dodajte to kodo pogojnemu izrazu v metodi Update() skripta Pipe, ki smo jo pustili prazno:

Void Update () ( if (character.transform.position.x - transform.position.x > 30) ( float xRan = Random.Range(0, 10); float yRan = Random.Range(-5, 5); Instanciate (gameObject, nov Vector2(character.transform.position.x + 15 + xRan, -10 + yRan), transform.rotation); Destroy(gameObject); ) )

To je potrebno za ustvarjanje primerka našega gameObjecta. Rezultat je nova enaka kopija. V Unityju se vsakič, ko uporabite besedo gameObject, nanaša na predmet, na katerega je skript trenutno vezan - v našem primeru na cev.

Naše cevi ponovno ustvarimo v naključnih različicah, da bo bolj zabavno.

Toda namesto da bi v skriptu PipeD naredili vse isto, generiramo oba predmeta na istem mestu. Tako lahko enostavno nastavimo položaj druge cevi glede na prvo. Pomeni tudi, da potrebujemo manj kode za PipeD.

Ustvarite javni gameObject z imenom pipeDown. Nato posodobite kodo takole:

If (character.transform.position.x - transform.position.x > 30) ( float xRan = Random.Range(0, 10); float yRan = Random.Range(-5, 5); float gapRan = Random.Range (0, 3); Instanciate(gameObject, new Vector2(character.transform.position.x + 15 + xRan, -11 + yRan), transform.rotation); Instanciate(pipeDown, new Vector2(character.transform.position.x + 15 + xRan, 12 + gapRan + yRan), transform.rotation); Destroy(gameObject); )

Vrnite se v Unity in povlecite prefab pipe_down iz mape prefabs (to je pomembno!) na mesto, kjer piše "Pipe Down" (opazite, kako je naše kamelje ohišje zamenjano s presledkom) na pipe sprite pipe up . Če se spomnite, smo Pipe Down definirali kot javni gameObject, kar nam daje možnost, da od koder koli ugotovimo, kaj je ta predmet - v tem primeru prek inšpektorja. Z izbiro predfabe za ta objekt zagotovimo, da bo cev, ko je instancirana, vključevala vse atribute in skript, ki smo jih dodali prej. Ne ustvarimo le spritea, ampak ponovno ustvarimo predmet s trkalnikom, ki lahko ubije lik.

Vse, kar bomo dodali na istem mestu v skriptu PipeD, je samo Destroy(gameObject), tako da se bo cev samouničila, ko bo zapustila levo stran zaslona.

Če igro začnete zdaj, bo zaslon samodejno napredoval in umrli boste, če zadenete katero od cevi. Poletite dovolj daleč in te cevi bodo izginile in se spet pojavile pred vami.

Na žalost je razdalja med cevmi velika in zaslon je videti prazen. To bi lahko popravili tako, da bi našemu prizorišču dodali nekaj montažnih objektov, da bi ustvarili niz cevi, ki se nenehno pojavljajo. Vendar bi bilo bolje generirati cevi v skriptu. To je pomembno, saj bodo v nasprotnem primeru po smrti lika cevi na začetku poti uničene in spet bo nastal prazen prostor.

Na ta način lahko med vsakim nalaganjem igre ustvarimo prvih nekaj cevi in ​​po smrti lika vse vrnemo na svoje mesto.

Neskončni let

Zdaj pa ustvarimo javni spremenljivki pipe_up in pipe_down v skriptu Character. To vam bo dalo možnost sklicevanja na ustvarjene objekte tako, da povlečete prefabs na predmet znakov, tako kot takrat, ko smo dodali pipe_down skriptu Pipe.

Dodati moramo te spremenljivke:

Javni GameObject pipe_up; public GameObject pipe_down;

Nato bomo napisali metodo, kot je ta:

Public void BuildLevel() ( Instanciate(pipe_down, new Vector3(14, 12), transform.rotation); Instanciate(pipe_up, new Vector3(14, -11), transform.rotation); Instanciate(pipe_down, new Vector3(26, 14), transform.rotation); Instanciate(pipe_up, new Vector3(26, -10), transform.rotation); Instanciate(pipe_down, new Vector3(38, 10), transform.rotation); Instanciate(pipe_up, new Vector3( 38, -14), transform.rotation); Instanciate(pipe_down, new Vector3(50, 16), transform.rotation); Instanciate(pipe_up, new Vector3(50, -8), transform.rotation); Instanciate(pipe_down, new Vector3(61, 11), transform.rotation); Instanciate(pipe_up, new Vector3(61, -13), transform.rotation); )

Poklicali ga bomo enkrat v metodi Update() in enkrat v metodi Death().

Ko se igra začne, se pokliče Update() in naše cevi se postavijo glede na dano konfiguracijo. Zaradi tega bo prvih nekaj ovir vedno na istem mestu. Po smrti igralca se cevi vrnejo na ista mesta.

Vrnite se na prizorišče v Unity in izbrišite dve cevi, ki sta zdaj tam. Vaša "igra" bo videti le kot prazen zaslon s ptico. Pritisnite Predvajaj in pojavile se bodo cevi, po prvih nekaj bo njihov položaj določen naključno.

Končno

To smo storili cela igra! Dodajte števec rezultatov, poskusite ga narediti bolj izvirnega in povečajte težavnost igre, ko napredujete. Prav tako ne bo odveč sestaviti jedilnika. Druga dobra ideja je uničenje cevi na zaslonu po smrti lika. Ko končate s tem, menite, da je pripravljen za objavo v Trgovina z igračami igra v žepu! Nekoč podobna igra močno obogatel še enega razvijalca, kar dokazuje, da za uspeh ni treba biti programski genij ali imeti za seboj bogatega založnika. Potrebujete le dobro idejo in deset minut!

Želite pisati aplikacije za Android, vendar ne veste, kje začeti? Potem si oglejte našo odlično vadnico za učenje razvoja za Android.



 
Članki na tema:
Vse, kar morate vedeti o pomnilniških karticah SD, da ne boste zafrknili pri nakupu Connect sd
(4 ocene) Če v napravi nimate dovolj notranjega pomnilnika, lahko uporabite kartico SD kot notranji pomnilnik za telefon Android. Ta funkcija, imenovana Adoptable Storage, omogoča operacijskemu sistemu Android formatiranje zunanjih medijev
Kako vrteti kolesa v GTA Online in več v pogostih vprašanjih o GTA Online
Zakaj se gta online ne poveže? Preprosto je, strežnik je začasno izklopljen/neaktiven ali ne deluje. Pojdite na drugo Kako onemogočiti spletne igre v brskalniku. Kako onemogočiti zagon aplikacije Online Update Clinet v Connect managerju? ... na skkoko vem, kdaj te moti
Pikov as v kombinaciji z drugimi kartami
Najpogostejše razlage karte so: obljuba prijetnega poznanstva, nepričakovano veselje, prej neizkušena čustva in občutki, prejem darila, obisk zakonskega para. Srčni as, pomen karte pri karakterizaciji določene osebe vas
Kako pravilno sestaviti horoskop selitve Naredite zemljevid po datumu rojstva z dekodiranjem
Natalna karta govori o prirojenih lastnostih in sposobnostih lastnika, lokalna karta govori o lokalnih okoliščinah, ki jih sproži kraj dogajanja. Po pomenu so enake, saj življenje mnogih ljudi mine iz njihovega rojstnega kraja. Sledite lokalnemu zemljevidu