Logo sl.nowadaytechnol.com

Kako Ustvariti Osnovno Igro Platforme Unity

Kazalo:

Kako Ustvariti Osnovno Igro Platforme Unity
Kako Ustvariti Osnovno Igro Platforme Unity

Video: Kako Ustvariti Osnovno Igro Platforme Unity

Video: Kako Ustvariti Osnovno Igro Platforme Unity
Video: Как сделать 2D платформер на Unity | #1 2024, Marec
Anonim

V tej ekskluzivni vadnici Appual bomo preučili, kako nastaviti Unity (s podporo za WebGL) in ustvariti svoj prvi projekt igre. Za to vadnico lahko klonirate drugo igro v spletu, če pa želite ustvariti lastne igre v brskalniku, bi morali imeti nekaj izkušenj s programiranjem HTML5 / JavaScript (in morda C ++, če želite biti modni).

Ustvarjanje iger, ki temeljijo na brskalniku, v Unity WebGL je lahko zelo koristno - obstaja veliko spletnih mest z igralnimi portali, ki si bodo prihodek od oglasov delili z vami ali vaše igre dokončno kupili od vas. Če ste nadarjeni, lahko zlahka zaslužite nekaj tisoč dolarjev na mesec z deležem prihodkov od oglasov. Enotnost z WebGL je eno najboljših orodij za to, z vtičniki WebVR pa lahko svojim igram tudi povsem enostavno podprete VR.

Če se torej sprašujete, kako ustvariti igre Unity WebGL, berite naprej!

Zahteve

  • Enotnost
  • Znanje HTML5 / JavaScript
  • (Neobvezno) dober urejevalnik besedil, kot je NotePad ++

Za začetek prenesite in namestite Unity ter namestite komponento za podporo WebGL.

Image
Image

Ko se Unity zažene prvič, si vzemite minuto, da se navadite na uporabniški vmesnik in menije, zlasti na ploščo Hierarchy - ta vsebuje vse trenutne elemente scene. To je v bistvu glavni pogled na karkoli že delate, pa naj bo to nivo igre ali glavni meni.

Imate tudi zavihek Igra (za preizkušanje igre znotraj urejevalnika), na desni pa je plošča Inspector. Tu je mogoče urejati elemente, na primer luči, igralce itd.

Če v meniju Hierarchy kliknete gumb Directional Light, vam bo dal veliko informacij o tej luči in lahko boste omogočili / onemogočili sence, ki jih oddaja.

Na koncu imate na dnu okno Project, v katerem so samo zavihki datotek, ki so bile uporabljene za ustvarjanje vašega projekta.

Potem, ko ste se za bit nekoliko seznanili z uporabniškim vmesnikom, nadaljujte in shranite trenutno sceno. Odprite Datoteka> Shrani sceno in odprlo se bo pogovorno okno za mapo »Sredstva«. Običajna praksa je, da pri razvoju iger stvari organizirate v podmape, zato ustvarite podmapo z imenom "Scene" in vanjo shranite sceno.

Zdaj bomo ustvarili nekaj zares preprostega - igra "platformer", kjer naš lik samo skače po platformah. Padec pomeni smrt. To bomo počeli v 3D pogledu / pogledu prve osebe, tako da lik res ne modelira - pravzaprav bomo za svoj lik uporabili preprost predmet "krogla", ker ga je najpreprosteje ustvariti.

Image
Image

Torej na plošči Hierarchy kliknite »Ustvari« in uredite te lastnosti:

  • Položaj {X: 0, Y: 2,5, Z: 0}
  • Lestvica {X: 0,3, Y: 0,3, Z: 0,3}

Če pritisnete gumb »Predvajaj«, bo v pogledu kamere prikazana preprosta krogla. Zdaj želimo svojemu značaju dodati gravitacijo in skok fizike.

Torej na plošči Inspector dodajte kroglo komponento in izberite Rigidbody - prav tako ne želimo, da se krogla vrti, zato pojdite na Containts> izberite vse osi v območju rotacije.

Zdaj moramo ustvariti nekakšno platformo, da naš lik ne bo neskončno padel skozi igro. Torej dodajte kocko in nastavite vrednost Scale Y na 0.1 - zdaj, če znova "predvajate" sceno, bi naš lik moral "pasti" na kocko.

Zdaj bomo dodali nekaj fizike, tako da bo naš lik malo "odskočil", ko bo zadel platformo kocke. Ustvariti moramo nov fizikalni material in ga uporabiti na krogli, da bodo naši liki imeli poskočne lastnosti.

V imeniku sredstev ustvarite novo podmapo in jo poimenujte nekako kot »Materiali«, nato pa ustvarite nov fizični material. Pokličite ga "Bouncy_blob" ali kako želite.

Zdaj na nadzorni plošči dodajte naslednje vrednosti živahnemu materialu:

  • Dinamično trenje: 10
  • Statična fikcija: 10
  • Živahnost: 1
  • Torni kombajn: največ
  • Odbojni kombajn: največ

Na platformo pod našo kroglo moramo dodati tudi fizikalni material - to bo tako, da se bo naša krogla ob vsakem odboju odbijala z naraščajočo višino. Torej ustvarite drug material in ga poimenujte nekako kot »Platform_bouncing« in mu dodajte vrednosti:

  • Dinamično trenje: 0,9
  • Statična fikcija: 0,9
  • Živahnost: 1
  • Torna kombinacija: povprečna
  • Odbojna kombinacija: pomnoži

Zdaj, ko pritisnete gumb »Predvajaj«, boste opazili, da se naš lik odbije višje ob vsakem odboju.

Če želite platformi dodati nekaj barve / teksture, ustvarite nov material in kliknite zavihek “Albedo”, nato pa mu dajte barvo. Ta material lahko povlečete in spustite na platformo in spremenil bo barvo.

Image
Image

Za prvoosebno perspektivo morate samo povleči in spusti kamero v podoknu Hierarhija na našo kroglo - to bo povzročilo, da bo kamera ves čas sledila našemu značaju. Ta predpostavka ostaja enaka za kakršno koli prvoosebno igro Unity - če pa ustvarjate večigralsko igro FPS, kot je Leader Strike, postane malo naprednejša, saj boste imeli na svoj model nastavljenih več kamer.

V vsakem primeru morate urediti kamero tako:

  • Položaj {X: 0, Y: 1, Z: 0}
  • Vrtenje {X: 90, Y: 0, Z: 0}
  • Lestvica {X: 2,5, Y: 2,5, Z: 2,5}
  • Jasne zastavice: enobarvna
  • Ozadje: # 000
  • Vidno polje: 80.3

Da bi nam dali občutek "perspektive" na višino skakanja, bomo dodali žaromet. Torej prilagodite vrednosti žarometov na:

Vrtenje {X: 90, Y: 0, Z: 0}

Zdaj želimo programirati nadzor igre, tako da lahko z miško nadzorujemo gibanje lika. Za to potrebujemo skript.

Na plošči Projekti dodajte novo mapo in jo poimenujte »Scripts«. Zdaj v Camer dodajte JavaScript in ga poimenujte »InputController« ter ga dodajte v mapo »Scripts«, ki ste jo pravkar ustvarili. Zdaj, ko dvokliknete skript, lahko uredite njegove lastnosti.

Ko odprete skript v privzetem urejevalniku skriptov Unity, mora biti videti tako:

Image
Image

Torej želimo, da se spremenljivka "GameObject" sklicuje na naš lik - za to lahko preprosto preklopite nazaj na pogled kamer Unity in povlečete / spustite našo kroglo na vnosno polje.

Zdaj želimo funkciji Start dodeliti polovico širine in višine zaslona. Uredite skript tako, da bo videti tako:

Image
Image

Torej, zdaj potrebujemo samo vrednosti miške (kadar koli jih premika predvajalnik). Za to bomo morali poklicati funkcijo Posodobitev. Torej prilagodite skript pod spremenljivko Posodobitev:

Image
Image

Za razlago bitov sta spremenljivki X in Z namenjeni osi krmilnika - želimo, da ti manipulirajo s položajem našega lika, ko v igro pošljemo vhod krmilnika. Sklicevati se moramo na spremenljivko Input.mousePosition, ki nam daje 2D vektor. Ta 2D vektor je treba dodati v naše sledenje koordinaciji, zato bomo poklicali funkcijo setHeroPosition z vrednostmi kot argumenti.

Torej ustvarite nov skript in ga pokličite HeroController in ga pritrdite na našo kroglo / lik. Uredite skript tako, da bo videti tako:

Image
Image

Zdaj, ko pritisnete gumb »Predvajaj«, bi se lahko z miško lahko pomikali po znaku po platformi in celo padli s platforme! Naš končni cilj je ustvariti platformo, podobno kratkemu življenju, zato bomo to igro podrobneje predstavili v naslednjem priročniku.

S tem so zaključene same osnove ustvarjanja zelo preprostega igranja v Unityju - v naslednjem delu tega vodnika bomo razpravljali o tem, kako na raven dodati več kulise, dodati meni iger in vse to izvoziti na spletno mesto z uporabo WebGL, za igranje v brskalniku.

Ustvarjanje procesnih platform

Torej, v prvem delu te vaje smo pravkar izdelali osnovno platformo, na kateri lahko vaš lik odskoči (in pade v svojo pogubo) - toda za pravega platformerja moramo dodati dodatne platforme. Ampak ne želimo dodati milijonov platform - želimo, da Unity samodejno ustvarja platforme, ko se naš lik odbija.

Za to potrebujemo predlogo platforme - drugače znano kot "montažna". Prefab je okrajšava za prefabricated in preprosto pomeni "vnaprej izdelana" - običajno kopija igralnega predmeta, ki jo lahko znova in znova uporabite. Pravzaprav lahko prefabi vsebujejo hierarhije igralnih predmetov, kar pomeni, da lahko "pripravite" celotno sceno igralnih predmetov.

Image
Image

Torej, kar morate storiti, je ustvariti novo mapo sredstev z imenom Prefabs, nato povlecite in spustite našo platformo s plošče Hierarchy v to novo mapo. Montažne plošče bomo na plošči Hierarchy prepoznali po modri barvi.

Da bi Unityju naročili, naj ustvari proceduralne platforme, moramo ustvariti skript, imenovan GameManager, in ga pritrditi na kamero. Skripti GameManager v bistvu vsebujejo pomembna navodila, da se motor lahko prenaša na igranje - v tem primeru bo ustvarjal platforme, ko bo skakal naš lik.

Razlog, da ga pritrdimo na cameris, ker cameris ni nikoli uničen in ostaja konstanten - torej skript ni nikoli uničen in ostane konstanten, če je nanj pritrjen.

Tukaj je treba vključiti v skript:

Image
Image

Za razlago tega bitnega koda moramo ustvariti sklic tako na montažno ploščo kot na kroglo (naš znak), zato ju morate povleči in spustiti v posebna mesta v urejevalniku.

Ta koda vsebuje tudi tri zasebne spremenljivke - vrstice, ki se začnejo z private var. Ti bodo instancirali (sklicevali) na montažno ploščo na naslednje načine:

  • Zasebna meja var: meje plavajočih mest na osi y, tako da ko bo naš lik skočil višje od te meje, bo ustvarjena nova plošča.
  • Zasebna rotacija var: Quaternion; preprosto doda potrebno rotacijo za instanco naših prefab - vendar dodajamo rotacijo = Quaternion.identify; ker to naroči motorju, naj ne vrti predmeta igre. Predmet (naše montažne plošče) bo dobesedno "popolnoma usklajen" s svetom.
  • Končna zasebna spremenljivka lastPlatformPosition si bo zapomnila in shranila položaj zadnje platforme kot 3D vektor (v bistvu platforme ne bodo izginile za vami, tako da se boste lahko vrnili skozi svet iger, če želite).

V tem naslednjem bitu skripta bomo dodali preverjanje za vsak okvir, ali je naša krogla (znak) nad mejo (ki ustvarja nove platforme) - če je naš znak nad mejo, bomo dvignili mejno mejo ali ne ustvariti novo ploščo / platformo višjo od prejšnje.

Image
Image

Naslednji korak je dodajanje kode, ki določa naslednji položaj plošče:

Image
Image

V tej kodi uporabljamo zanko do while, da zagotovimo, da vrednosti vektorjev X in Z (njen položaj v igralnem svetu) niso enake prejšnjim platformam - zato bodo naše postopkovno ustvarjene platforme vedno višje.

Seveda ne želimo, da bi bile te vrednosti strogo postavljene - malo naključnosti je dobro, sicer pa delamo samo popolno stopnišče. Torej uporabljamo funkcijo Random. Range, med vrednostma -1 in 2, da pokličemo naključne vrednosti za X in Z. Če se želite zavajati, se lahko s temi števili igrate malo.

Ustvarjanje menija igre

Do zdaj smo ustvarili "igro", kjer lahko skačete z naraščajočo višino in premikate miško, da nadzorujete smer. Težava je v tem, da če padete s platforme, boste preprosto neskončno padli - za začetek moramo vpisati meni »smrt« / igre.

V bistvu bomo napisali skript, ki preveri, ali naša krogla (lik) pade pod prvo platformo igre. V tem primeru bo skript naložil novo sceno.

Naš prvi korak bo preveriti, ali je krogla padla pod določen prag. Pojdite v skript GameManager, ki smo ga naredili prej, in poglejte izjavo if funkcije posodobitve.

Tukaj bomo uporabili izjavo else if, da preverimo, ali je položaj naše krogle pod -2,0 enote položaja Y - če je, bo naša zasebna funkcija gameOver … no, ta del skripta je sam po sebi razumljiv.

Image
Image

Ta zadnji del skripta je funkcija, ki jo uporabljamo za obdelavo stanja "game over" in nalaganje našega igralnega menija.

To prinaša razred Unity's Application - poklicali smo lahko funkcijo LoadLevel, da se prikaže nova scena, ki je v tem primeru preprosto naš meni igre - ne pozabite, da so v Unityu v bistvu vse "ravni". Glavni meniji (Začni igro - Možnosti - Zasluge - itd.) So v bistvu samo nivoji / prizori s koščki besedila, ki ga je mogoče klikniti. Nekako kot Skyrimovi nakladalni zasloni, kajne? So le 3D modeli v praznem svetovnem prostoru z nakladalno vrstico.

V vsakem primeru moramo ustvariti sceno prek File> New Scene in ji med shranjevanjem dati ime Menu. Nato bomo v postopek izdelave dodali oba prizora. To naredite v meniju File> Build Settings.

Naš prizor v meniju mora biti še vedno odprt, zato preprosto kliknite gumb »Dodaj trenutno« in dodajte prizor v svoje nastavitve zgradbe - to ponovite z nivojskim prizorom.

Ko umremo v igri, bi nas skript, ki smo ga ustvarili, moral preusmeriti z nivoja igre na menijsko sceno.

Dodajte gumb »Start« za igralce

Zdaj lahko igro igramo v testnem načinu, toda od zdaj igralci nikakor ne morejo začeti igre, če bi to igro nekam naložili. Zato moramo ustvariti meni z igrami, ki ima gumb za začetek igre.

Torej preklopite na sceno menija igre in dodajte ta bit v kamero (v plošči Inspector se spomnite iz točke 1 te vadnice?).

  • Jasne zastavice: enobarvna
  • Ozadje: # 000
  • Širina: 200
  • Višina: 60

To nam bo dalo trdno črno ozadje za naš igralni meni - to se izvaja v vrednostih RGB, ne v šestnajstiki - tako bi bila modra 001, zelena 010, rdeča 100 itd. Lahko bi vam to razložil, toda vse, kar morate storiti je Google "RGB picker", če želite določeno barvo.

Če nadaljujemo, moramo dodati svoj gumb za začetek igre. To se naredi prek elementov uporabniškega vmesnika - v bistvu lahko elemente uporabniškega vmesnika dodajamo na enak način kot 3D elemente prek podokna Hierarchy. Torej, nadaljujte in ustvarite gumb UI in na plošči Hierarchy boste videli nekaj novih elementov:

  • EventSystem
  • Platno
  • Gumb
  • Besedilo

Če želite to razčleniti - platno je naš vsebnik za vse elemente uporabniškega vmesnika in lahko ga naredimo odziven (pod odzivnim mislim na "spreminjanje velikosti zaslona", ne odziven, kot da bo odgovarjal na vaša vprašanja. To je najbolje prepustiti skriptom AI). V vsakem primeru bomo položaj gumba spremenili v naslednjega:

  • Transktna transformacija {Poz X: 0, Poz Y: 0, Poz Z: 0}
  • Transktna transformacija {Širina: 200, Višina: 60}

Če želite to narediti nekoliko bolj elegantno, lahko gumbu odstranite "izvorno sliko" in ji nastavite barvo. Če želite spremeniti besedilo gumba, preprosto uredite element Text na nekaj podobnega »START GAME« in mu določite velikost pisave okoli 16.

Če želite gumb klikniti, bomo dodali funkcijo skriptu UIController v elementu Button. Samo dodajte ta del kode spodaj:

Image
Image

To funkcijo uporabite za nastavitve gumba Inspector in v nastavitvah komponente Button (Script) bomo preprosto dodali funkcijo, ki se izvede, ko igralec klikne naš gumb Start. Torej samo dodajte funkcijo dogodku On Click () in povlecite / spustite gumb Start Game v polje za vnos. Na koncu izberite novo izdelano funkcijo iz skripta UIController (UIController. StartGame)

To funkcijo lahko uporabimo v gumbu Nastavitve inšpektorja. V nastavitvah komponente Button (Script) lahko funkcijo izvajamo vsakič, ko jo igralec klikne. V ta namen dogodku On Click () dodamo novo funkcijo s klikom ikone +. Zdaj lahko sam gumb povlečemo in spustimo na polje za vnos. Nato iz skripta UIController (UIController. StartGame) izberemo funkcijo, ki smo jo pravkar napisali.

Kako izvoziti / objaviti kot brskalno igro WebGL

Odprite nastavitve gradnje in za ciljno platformo izberite WebGL. Zdaj kliknite gumb Preklopi platformo in na koncu še gumb Zgradi in navedite naslov svoje igre. Po izdelavi bo izvožena / shranjena kot datoteka. HTML, ki jo lahko odprete / pogledate v katerem koli brskalniku, ki podpira WebGL. Če želite objaviti svojo igro, lahko to dosežete na dva načina:

  • Naložite svojo igro na nekakšen gostitelj datotek (Dropbox, Google Drive itd.), Nato delite povezavo. To je uporabno za majhne predstavitve, ki jih želite prikazati prijateljem ali potencialnim strankam (spletna mesta z igralnimi portali, ki bodo bodisi kupila vašo igro bodisi z vami ustvarila prihodek od delitve oglasov).
  • Naložite svojo igro na strežnik FTP, ki je vaš lastnik, in jo vdelajte v takšen način:.
Image
Image

Te vrednosti iframe lahko prilagodite in z njimi opravite številne stvari. Če na primer dodate iframe, kot je allowfullscreen = true, bo igra brskalnika omogočila celozaslonski način.

Dodatni viri:

Priporočam, da ne poskušate objaviti te igre, ki smo jo izdelali v tej vadnici, na portalu platformnih iger; izgledali boste resnično neumno, ne da bi ga najprej malo polirali.

Eden od načinov, kako izboljšati svojo igro, še posebej, če niste posebej dobri pri ustvarjanju 3D modelov, je uporaba brezplačnih (ali plačljivih) virov. Tukaj je nekaj knjižnic, ki jih je vredno preveriti:

  • Unity Asset Store (Unityjeva uradna trgovina z viri - tudi tukaj je veliko brezplačnih možnosti)
  • Sketchfab: Unity 3D modeli
  • Deviantart: 3D modeli Unity
  • Procesni svetovi: premoženje enotnosti
  • GameArt2D: Brezplačno (večinoma sredstva, ki temeljijo na sprite / slikovnih pikah)

Res je na voljo ogromno virov, samo previdno in preberite drobne odtise - nekatera brezplačna sredstva lahko uporabljate v komercialnih projektih, druga pa vam dovolijo, da izkoristite njihove vire samo, če je vaša igra brezplačna.

Priporočena: