Logo hr.nowadaytechnol.com

Kako Stvoriti Osnovnu Igru platforme Unity

Sadržaj:

Kako Stvoriti Osnovnu Igru platforme Unity
Kako Stvoriti Osnovnu Igru platforme Unity

Video: Kako Stvoriti Osnovnu Igru platforme Unity

Video: Kako Stvoriti Osnovnu Igru platforme Unity
Video: Как сделать 2D платформер на Unity | #1 2024, Ožujak
Anonim

U ovom ekskluzivnom vodiču za Appual proći ćemo kroz postupak postavljanja Unity (uz podršku WebGL) i stvaranje vašeg prvog projekta igre. Za ovaj vodič možete klonirati drugu igru na mreži, ali ako želite stvoriti vlastite igre u pregledniku, trebali biste imati iskustva u programiranju HTML5 / JavaScript (a možda i C ++, ako želite biti fancy).

Stvaranje igara temeljenih na preglednicima u Unity WebGL-u može biti poprilično korisno - postoji mnogo web stranica s igraćim portalima koje će podijeliti prihod od oglasa s vama ili će vaše igre izravno kupiti od vas. Ako ste talentirani, možete jednostavno zaraditi nekoliko tisuća dolara mjesečno u udjelu u prihodima od oglasa. Jedinstvo s WebGL-om jedan je od najboljih alata za to, a s WebVR dodacima svojim igrama također možete prilično lako pružiti podršku za VR.

Pa ako se pitate kako stvoriti Unity WebGL igre, čitajte dalje!

Zahtjevi

  • Jedinstvo
  • HTML5 / JavaScript znanje
  • (Izborno) dobar uređivač teksta poput NotePad ++

Za početak preuzmite i instalirajte Unity i pobrinite se da instalirate komponentu za podršku WebGL.

Image
Image

Kada se Unity pokrene prvi put, uzmite minutu da se naviknete na korisničko sučelje i izbornike, posebno na ploču Hijerarhija - ovo sadrži sve trenutne elemente scene. U osnovi je to glavni pogled na čemu god radili, bilo da se radi o razini igre ili glavnom izborniku.

Imate i karticu Igra (za testiranje igre unutar uređivača), a s desne strane je ploča Inspektor. Ovdje se mogu uređivati elementi, na primjer, svjetla, glumci itd.

Ako kliknete gumb Usmjereno svjetlo u izborniku Hijerarhija, dat će vam hrpu informacija o ovom određenom svjetlu i moći ćete omogućiti / onemogućiti sjene s njega.

Konačno, na dnu imate prozor Projekt koji samo drži karticu datoteka koje se koriste za stvaranje vašeg projekta.

Nakon što ste se malo upoznali s korisničkim sučeljem, nastavite i spremite trenutnu scenu. Idite na Datoteka> Spremi scenu i otvorit će se dijaloški okvir za mapu "Imovina". Standardna je praksa držati stvari organiziranim u podmape prilikom razvijanja igara, pa stvorite podmapu pod nazivom "Scene" i spremite scenu u nju.

Sada ćemo stvoriti nešto zaista jednostavno - tip igre "platformer", gdje naš lik samo skače po platformama. Pad znači smrt. To ćemo raditi u 3D prikazu / prvom licu, tako da lik doista ne modelira - zapravo, mi ćemo samo koristiti jednostavni objekt "sfera" za svoj lik, jer je najjednostavniji za stvaranje.

Image
Image

Dakle, na ploči Hijerarhija kliknite "Stvori" i uredite ova svojstva:

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

Ako pritisnete gumb "Reproduciraj", u kamervju bi se trebala prikazati jednostavna kugla. Sada želimo dodati gravitaciju i skočiti fiziku svom "karakteru".

Dakle, na ploči Inspector dodajte kuglu komponentu i odaberite Rigidbody - također, ne želimo da se sfera rotira, zato idite na Constaints> odaberite sve osi u području Rotation.

Sada moramo stvoriti nekakvu platformu kako naš lik ne bi beskrajno propadao kroz igru. Dakle, dodajte kocku i postavite vrijednost Scale Y na 0.1 - sada ako ponovno "reproducirate" scenu, naš bi lik trebao "pasti" na kocku.

Sad ćemo dodati malo fizike, tako da će naš lik malo "odskočiti" kad udari u platformu kocke. Moramo stvoriti novi fizički materijal i primijeniti ga na sferu, kako bi naš lik imao odskočna svojstva.

Stvorite novu podmapu u direktoriju Aktiva i nazovite je nekako poput "Materijali", a zatim stvorite novi fizički materijal. Nazovite ga "Bouncy_blob" ili kako već želite.

Sada na inspekcijskoj ploči dodajte ove vrijednosti odskočnom materijalu:

  • Dinamičko trenje: 10
  • Statička fikcija: 10
  • Poskočnost: 1
  • Frikcijski kombajn: maksimum
  • Kombinacija za odbijanje: maksimum

Također bismo trebali dodati fizički materijal na platformu ispod naše sfere - to će biti tako da će naša sfera poskakivati s povećanjem visine pri svakom odskoku. Dakle, stvorite drugi materijal i nazovite ga nekako poput „Platform_bouncing“i dajte mu vrijednosti:

  • Dinamičko trenje: 0,9
  • Statička fikcija: 0,9
  • Poskočnost: 1
  • Friction Combine: Prosjek
  • Kombinacija za odbijanje: Pomnožite

Sada kada pritisnete gumb "Reproduciraj", primijetit ćete da naš lik poskakuje sve više pri svakom odskoku.

Da biste dodali malo boje / teksture na platformu, stvorite novi materijal i kliknite karticu “Albedo”, a zatim mu dajte boju. Možete povući i ispustiti ovaj materijal na platformu i promijenit će boju.

Image
Image

Za perspektivu prvog lica, samo trebate povući i spustiti kameru na ploči Hijerarhija na našu sferu - to će uzrokovati da kamera cijelo vrijeme slijedi naš lik. Ova premisa ostaje ista za bilo koju vrstu igre Unity u prvom licu - ali ako stvarate FPS igru za više igrača poput Leader Strikea, ona postaje malo naprednija jer ćete imati postavljeno nekoliko kamera po modelu.

U svakom slučaju, kameru morate urediti na sličan način:

  • Položaj {X: 0, Y: 1, Z: 0}
  • Zakretanje {X: 90, Y: 0, Z: 0}
  • Ljestvica {X: 2,5, Y: 2,5, Z: 2,5}
  • Prozirne zastavice: Jednobojna
  • Pozadina: # 000
  • Vidno polje: 80.3

Sada da bismo dobili osjećaj "perspektive" visine skakanja, dodati ćemo svjetlo reflektora. Stoga prilagodite vrijednosti reflektora kako biste:

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

Sada želimo programirati kontrole igre, kako bismo pomoću miša mogli kontrolirati kretanje lika. Za ovo nam treba skripta.

Na ploči Projekti dodajte novu mapu i nazovite je “Scripts”. Sada dodajte JavaScript kameri i nazovite ga "InputController", a također ga dodajte u mapu "Skripte" koju ste upravo kreirali. Sada kada dvokliknete skriptu, možete urediti njena svojstva.

Kada otvorite skriptu u zadanom uređivaču skripti Unity, ona bi trebala izgledati ovako:

Image
Image

Dakle, želimo da varijabla "GameObject" upućuje na naš lik - za to se jednostavno možete vratiti na Unity camerview i povući / spustiti našu sferu na polje za unos.

Sada funkciji Start želimo dodijeliti polovicu širine i visine zaslona. Zato uredite skriptu kako bi izgledala ovako:

Image
Image

Dakle, sada nam trebaju samo vrijednosti miša (kad god ih igrač pomakne). Da bismo to postigli, morat ćemo pozvati funkciju Ažuriranje. Dakle, podesite skriptu pod varijablom Ažuriranje:

Image
Image

Da bismo objasnili bit, varijable X i Z su za os kontrolera - želimo da one manipuliraju položajem našeg lika kada u igru šaljemo ulaz kontrolora. Moramo se pozvati na varijablu Input.mousePosition, koja nam daje 2D vektor. Ovaj 2D vektor treba dodati našem praćenju koordinacije, pa ćemo pozvati funkciju setHeroPosition s vrijednostima kao argumentima.

Dakle, stvorite novu skriptu, nazovite je HeroController i pričvrstite ga na našu sferu / lik. Uredite skriptu kako bi izgledala ovako:

Image
Image

Sada kada pritisnete gumb "Reproduciraj", trebali biste se moći kretati likom po platformi pomoću miša, pa čak i pasti s platforme! Krajnji cilj nam je stvoriti platformiranu igru sličnu Short Lifeu, pa ćemo ovu igru malo bolje razraditi u sljedećem vodiču.

To zaključuje same osnove stvaranja vrlo jednostavnog igranja u Unityju - u sljedećem dijelu ovog vodiča razmotrit ćemo kako dodati više pejzaža na razinu, dodati izbornik igara i sve to izvesti na web stranicu pomoću WebGL-a za igranje u pregledniku.

Stvaranje proceduralnih platformi

Dakle, u prvom dijelu ovog vodiča, upravo smo napravili osnovnu platformu na kojoj vaš lik može odskočiti (i pasti u propast) - ali za istinskog platformera moramo dodati dodatne platforme. Ali ne želimo dodavati milijune platformi - želimo da Unity automatski kreira platforme dok naš lik odskakuje.

Za to nam je potreban predložak platforme - inače poznat kao "montažni". Prefab je skraćeno od prefabricirano, a jednostavno znači "unaprijed izrađeno" - obično kopija predmeta igre koju možete ponovno koristiti iznova. U stvari, prefabovi mogu sadržavati hijerarhiju objekata igre, što znači da biste mogli "pripremiti" cijelu scenu predmeta igre.

Image
Image

Dakle, ono što trebate učiniti je stvoriti novu mapu imovine koja se zove Prefabs, a zatim povucite i ispustite našu platformu s ploče Hijerarhija u ovu novu mapu. Prefabovi će se na ploči Hijerarhija prepoznati po plavoj boji.

Sada, da bismo naložili Unityu da kreira proceduralne platforme, moramo stvoriti skriptu nazvanu GameManager i pričvrstiti je na kameru. GameManager skripte u osnovi sadrže važne upute kako bi se motor mogao povezati s igranjem - u ovom slučaju, on će generirati platforme dok naši karakteri skaču.

Razlog zbog kojeg ga pridružujemo camerisu jer cameris nikada nije uništen i ostaje konstantan - tako da se skripta nikada ne uništava i ostaje konstantna pričvršćivanjem na nju.

Evo što treba uključiti u skriptu:

Image
Image

Da bismo objasnili ovaj bit koda, potrebno je stvoriti referencu i na prefab ploču i na sferu (naš lik), pa ih morate povući i ispustiti u njihova određena mjesta u vašem uređivaču.

Ovaj kod također sadrži tri privatne varijable - retke koji počinju s private var. Oni će instancirati (uputiti) prefab ploču na sljedeće načine:

  • Privatna var granica: plutajuća mjesta imaju ograničenje na osi y, pa će se, kada naš lik skoči više od ove granice, stvoriti nova ploča.
  • Privatna var rotacija: Quaternion; jednostavno dodaje potrebnu rotaciju za instanciju naših prefaba - međutim, dodajemo rotaciju = Quaternion.identify; jer ovo upućuje motor da ne okreće objekt igre. Objekt (naše montažne ploče) doslovno će biti "savršeno usklađen" sa svijetom.
  • Konačna privatna varijabla lastPlatformPosition upamtit će i spremiti položaj posljednje platforme kao 3D vektor (u osnovi, platforme neće nestati iza vas, tako da se možete vratiti unatrag kroz svijet igre ako želite).

U ovom slijedećem dijelu skripte dodat ćemo provjeru za svaki kadar nalazi li se naša sfera (znak) iznad granice (koja generira nove platforme) - ako je naš lik iznad granice, povisit ćemo granicu stvoriti novu ploču / platformu višu od prethodne.

Image
Image

Naš sljedeći korak je dodavanje koda koji određuje sljedeći položaj ploče:

Image
Image

U ovom kodu koristimo petlju do while kako bismo osigurali da vektorske vrijednosti X i Z (njegov položaj u svijetu igre) nisu identične prethodnim platformama - tako da će naše proceduralno generirane platforme uvijek rasti u visinu.

Naravno, ne želimo da se te vrijednosti strogo postavljaju - malo slučajnosti je dobra stvar, u protivnom samo izrađujemo savršene stepenice. Dakle, koristimo funkciju Random. Range, između vrijednosti -1 i 2, za pozivanje slučajnih vrijednosti za X i Z. Možete se igrati s tim brojevima malo ako se želite zavaravati.

Izrada izbornika igre

Do sada smo stvorili "igru" u kojoj možete skakati s povećanjem visine i pomicati miša za kontrolu smjera. Problem je u tome što ako padnete s platforme, jednostavno ćete beskrajno pasti - za početak trebamo unijeti skriptu u "death" / izbornik igre.

U osnovi, napisat ćemo skriptu koja provjerava pada li naša sfera (lik) ispod prve platforme igre. Ako je tako, skripta će učitati novu scenu.

Naš prvi korak bit će provjeriti je li kugla pala ispod određenog praga. Idite u skriptu GameManager koju smo napravili ranije i potražite izjavu if funkcije ažuriranja.

Ovdje ćemo upotrijebiti izjavu else if da provjerimo je li položaj naše sfere ispod -2,0 jedinice Y-položaja - ako jest, naša privatna funkcija gameOver će … pa, taj dio skripte sam po sebi objašnjava.

Image
Image

Posljednji bit skripte funkcija je koja se koristi za rukovanje "game over" stanjem i učitavanje našeg izbornika igara.

Ovo se odnosi na klasu aplikacije Unity - mogli smo pozvati funkciju LoadLevel kako bismo otvorili novu scenu, što je u ovom slučaju jednostavno naš izbornik igara - imajte na umu da su u osnovi sve stvari u Unityu "razine". Glavni izbornici (Start Game - Options - Credits - itd.) U osnovi su samo razine / scene s komadićima teksta na koji se može kliknuti. Nešto poput Skyrimovih utovarnih zaslona, zar ne? Oni su samo 3D modeli u praznom svjetskom prostoru s utovarnom trakom.

U svakom slučaju, moramo stvoriti scenu putem Datoteka> Nova scena i dodijeliti joj naziv Izbornik dok je spremamo. Tada ćemo dodati obje scene u postupak izrade. To se radi kroz Datoteka> Postavke gradnje.

Naša scena iz izbornika i dalje bi trebala biti otvorena, pa samo kliknite gumb "Dodaj trenutno" i dodajte scenu u svoje postavke gradnje - ponovite to sa scenom na razini.

Kad umremo u igri, skripta koju smo stvorili trebala bi nas prebaciti s razine igre na scenu izbornika.

Dodajte gumb "Start" za igrače

Sad smo u mogućnosti igrati igru u testnom načinu, ali trenutno igrači ne mogu započeti igru ako bismo ovu igru negdje prenijeli. Stoga moramo stvoriti izbornik igara koji ima gumb za pokretanje igre.

Dakle, prebacite se na scenu menija igre i dodajte ovaj bit u kameru (na ploči Inspector, sjećate li se iz točke 1. ovog vodiča?).

  • Prozirne zastavice: Jednobojna
  • Pozadina: # 000
  • Širina: 200
  • Visina: 60

To će nam dati čvrstu crnu pozadinu za naš izbornik igara - to se radi u RGB vrijednostima, a ne u hex-u - tako bi plava bila 001, zelena 010, crvena 100, itd. To bih vam mogao objasniti, ali sve što trebate učiniti je Googleov "RGB berač" ako želite određenu boju.

Nastavljajući dalje, trebamo dodati svoj gumb za početak igre. To se radi putem UI elemenata - u osnovi, možemo dodati UI elemente na isti način kao što dodajemo 3D elemente, kroz ploču Hijerarhija. Dakle, izvolite i stvorite gumb UI i vidjet ćete neke nove elemente na ploči Hijerarhija:

  • Sustav događaja
  • Platno
  • Dugme
  • Tekst

Da to razbijemo - platno je naš spremnik za sve elemente korisničkog sučelja i možemo ga učiniti prilagodljivim (pod responzivnim mislim na "skaliranje na veličinu zaslona", a ne kao da će odgovarati na vaša pitanja. To je najbolje prepustiti AI skriptama). U svakom ćemo slučaju položaj gumba promijeniti u sljedeći:

  • Transformacija ispravljanja {Poz X: 0, Poz Y: 0, Poz Z: 0}
  • Transformacija pravca {Širina: 200, Visina: 60}

Da biste ovo učinili elegantnijim, možete ukloniti "izvornu sliku" gumba i postaviti joj boju. A da biste promijenili tekst gumba, samo uredite element Text u nešto poput "START GAME" i dodajte mu veličinu fonta oko 16.

Da bi gumb mogao kliknuti, dodat ćemo funkciju skripti UIController u elementu Button. Samo dodajte ovaj bit koda u nastavku:

Image
Image

Primijenite ovu funkciju na postavke inspektora gumba, a u postavke komponente gumba (skripta) jednostavno ćemo dodati funkciju koja se izvršava kada igrač klikne naš gumb Start. Dakle, samo dodajte funkciju događaju On Click () i povucite / ispustite gumb Start Game u polje za unos. Na kraju, odaberite novoizrađenu funkciju iz skripte UIController (UIController. StartGame)

Ovu funkciju možemo primijeniti u postavkama inspektora gumba. U postavkama komponente gumba (skripta) možemo izvršiti funkciju kad god je igrač klikne. U tu svrhu dodajemo novu funkciju događaju Na klik () klikom na ikonu +. Sada možemo povući i ispustiti sam gumb na polje za unos. Zatim iz skripte UIController (UIController. StartGame) odaberemo funkciju koju smo upravo napisali.

Kako izvesti / objaviti kao WebGL igra preglednika

Otvorite postavke gradnje i odaberite WebGL kao ciljnu platformu. Sada kliknite gumb Prebaci platformu, i na kraju kliknite gumb Izgradi i dajte naslov svojoj igri. Nakon izrade bit će izvezena / spremljena kao. HTML datoteka koja se može otvoriti / pregledati u bilo kojem pregledniku s omogućenim WebGL-om. Iako želite objaviti svoju igru, to možete postići na dva načina:

  • Prenesite svoju igru na neku vrstu datoteke (Dropbox, Google pogon itd.), A zatim podijelite vezu. Ovo je korisno za male demonstracije koje želite prikazati prijateljima ili potencijalnim klijentima (web stranice portala za igre koje će ili kupiti vašu igru ili s vama postaviti prihod od dijeljenja oglasa).
  • Učitajte svoju igru na FTP poslužitelj koji imate i ugradite je na sljedeći način:.
Image
Image

Možete dotjerati te iframe vrijednosti i s njima raditi brojne stvari. Na primjer, dodavanje iframea poput allowfullscreen = true omogućilo bi vašoj igri preglednika da ide preko cijelog zaslona.

Dodatni resursi:

Preporučio bih da ne pokušavate objaviti ovu igru koju smo napravili u ovom vodiču na portalu igara na platformi; izgledat ćete stvarno glupo, a da ga prethodno malo ne ispolirate.

Jedan od načina da vaša igra izgleda puno bolje, pogotovo ako niste osobito dobri u izradi 3D modela, jest korištenje besplatnih (ili plaćenih) resursa. Evo nekoliko knjižnica koje vrijedi provjeriti:

  • Unity Asset Store (Unityjeva službena trgovina resursima - ovdje je također dostupno mnogo besplatnih opcija)
  • Sketchfab: Unity 3D modeli
  • Deviantart: Unity 3D modeli
  • Proceduralni svjetovi: imovina jedinstva
  • GameArt2D: Besplatni programi (uglavnom sredstva zasnovana na spriteu / pikselima)

Postoji stvarno puno resursa, samo budite oprezni i pročitajte sitne otiske - neka besplatna sredstva smiju se koristiti u komercijalnim projektima, a drugi vam omogućuju korištenje njihovih resursa samo ako je vaša igra besplatna za igranje.

Preporučeni: