Uvod u Unity 3D
Unity 3D moćan je motor za razvoj igara. Cross platforma je to što vam omogućuje stvaranje igara za mobilne uređaje, web, stolne računale i konzole, ukupno oko 30 platformi. Unity 3D ima mnogo uzbudljivih značajki, a neke od njih su navedene u nastavku:
- Trošak: Osobna verzija Unity 3D besplatna je za početnike, studente i hobiste. Unity Personal ima sve ključne značajke Unityja. Također ima osnovnu analitiku, izradu oblaka, oglase, više igrača, kupnje putem aplikacije i značajke na više platformi. Osim ovih značajki, i Unity personal ima nekoliko ograničenja. Dvije druge verzije Unity Plus i Unity Pro također su dostupne ozbiljnim kreatorima i profesionalcima, počevši od 35 USD mjesečno.
- Sve u jednom urednik: Jedinstvo je poznato kao sve u jednom uredniku. Uređivač Unity ima više alata prilagođenih umjetnicima za dizajniranje impresivnih iskustava. Ima snažno odijelo razvojnih alata za implementaciju logike igara i vrhunsko igranje igre. Unity vam također omogućuje stvaranje i 2D i 3D igara. Također uključuje AI alate za traženje puta temeljene na navigacijskom sustavu. Ima izvrsni ugrađeni sustav za stvaranje privlačnih korisničkih sučelja. Njegov fizički mehanizam Box2D omogućuje nam stvaranje realnih pokreta, zamaha, sile i igranja.
- Platforme: Unity podržava mnoge različite platforme poput Linuxa, IOS-a, Androida, Windows-a itd. ukupno gotovo 30 platformi.
- Virtualna i proširena stvarnost: Jedinstvo podržava razvoj virtualne i proširene stvarnosti. Najrašireniji je motor za razvoj XR-a. Ima podršku za Microsoft HoloLens, Stream VR / Vive, Gear VR i PlayStation VR u Unity Plus za virtualnu i proširenu stvarnost.
- Više igrača: Za mrežne igre i igre za više igrača u stvarnom vremenu Unity je najbolja opcija. Pruža poslužitelje za suradnju u stvarnom vremenu.
- Performanse motora: Performanse motora Unity su izvanredne. Multi-nitni računski sustav dolazi za intenzivne scenarije. Unity engine ima napredne alate za profiliranje koji određuju je li vaša igra vezana za CPU, a također govori i kako je optimizirati boljim iskustvom.
- Trgovina imovine Unity: To je ogroman katalog besplatnog i plaćenog sadržaja. Vrijeme za razvoj možete povećati preuzimanjem mnogih ugrađenih besplatnih modela i sredstava. Čak i trgovina imovine Unity ima cjelovite projekte i besplatne i plaćene.
- Grafički prikaz: Unity ima jedan od najboljih sustava za grafičko prikazivanje. Omogućuje vam stvaranje okruženja poput sjajnog dana, blistavog sjaja neonskih natpisa, slabo osvijetljenih ponoći i sjenovitih tunela. Proizvodi nevjerojatne vizualne efekte. Iako Unity podržava više platformi, ali još uvijek pokušava pokriti API grafičke građe svake platforme za bolje rezultate i ugodnije korisničko iskustvo.
- Suradnja u timu: Ima značajke koje omogućuju suradnju i jednostavan tijek rada. Unity-ova pohrana u oblaku omogućuje vam spremanje, dijeljenje i sinkronizaciju projekata bilo gdje.
- Izvještavanje o izvedbi: Jedinstveni sustav izvješćivanja o performansama bavi se problemima u stvarnom vremenu. Pitanja visokih prioriteta rješavaju se vrlo učinkovito. Pronalazi pogreške u aplikacijama na različitim uređajima i platformama.
Unity sučelja
Istražimo sučelja uređivača Unity koja se mogu konfigurirati. Sastoji se od točenih prozora koje možete preurediti prema svojim potrebama. Istražimo zadane postavke prozora. Evo slike kako izgleda
Prozor hijerarhije
Prozor Hijerarhija predstavlja svaki objekt na sceni. Pokazuje kako su objekti povezani međusobno u sceni, pa su ova dva prozora povezana. U prozoru hijerarhije nalazi se padajući popis nazvan kao Stvoriti. Možete vrlo lako stvoriti prazan objekt, 3D objekte, 2D objekte, svjetlost, audio, video, sustav čestica i objekte kamere. Prozor hijerarhije prikazan je u nastavku. 'Bez naslova' naziv je scene. Možete ga preimenovati kako želite. Možete vidjeti padajuću ikonu na sasvim desnoj strani bez naslova (naziv scene). Klikom na ovaj padajući izbornik možete vidjeti različite mogućnosti za Spremi scenu i Dodaj novu scenu.
Prozor scene
Prozor scene je mjesto na kojem stvarate scenu. Tu možete komunicirati sa svojim objektima i modelima igre. Možete promijeniti veličinu, preoblikovati i premjestiti svoje objekte scene. Ovo je prozor u kojem započinjete raditi s Unityjem. Prikaz scene može biti 2D ili 3D, ovisno o postavci vašeg projekta. Evo snimke zaslona kako izgleda prozor scene:
U prozoru scene možete vidjeti drugu karticu s oznakom Zasjenjena, ovdje možete odabrati koju vrstu prikaza želite ili zasjenjeni ili žičani. Ima mnogo drugih opcija poput Razno, Globalno osvjetljenje, GI u stvarnom vremenu, Baked GI i mnoge druge. 2D ili 3D možete pogledati pomoću gumba pokraj gumba Zasjenjena padati dolje. Sljedeći je prekidač za osvjetljenje scene. Slično prekidaču za zvuk scene. Sljedeći je padajući popis koji omogućuje efekte neba, magle, animiranog materijala i slike.
Prozor igre
Prozor igre predstavlja vašu konačnu, objavljenu igru u načinu igre. Prikazuje se s kamera koje ste koristili u igri. U prozoru igre možete vidjeti još jednu alatnu traku kao što je prikazano dolje na snimci zaslona:
Zaslon 1 prikazuje kameru prisutnu u vašoj sceni igre. Prema zadanim postavkama postavljeno je na Zaslon 1 za glavnu kameru. Ako imate više kamera i želite se prebaciti, možete odabrati s padajućeg popisa. Pored toga možete vidjeti padajući omjer omjera. Možete odabrati prema zaslonu monitora ciljnog uređaja. Dalje možete vidjeti Klizač skale za uvećanje. Pomaknite se udesno i proučite više detalja o svojoj sceni u načinu reprodukcije. Sljedeći je gumb za Maksimalno povećavanje reprodukcije, kada se klikne, veličina prozora igre bit će maksimalna u načinu igre. Isključi zvuk prekidač se koristi za isključivanje / uključivanje zvuka. Statistika prikazuje statistiku prikazivanja zvuka i grafike vaše igre.
Prozor imovine projekta
Kao što naziv pokazuje, u prozoru imovine nalazi se sva imovina vašeg projekta koju možete koristiti. Ako uvezete nešto novo, pojavit će se u prozoru imovine projekta. Prozor imovine projekta ima dva dijela, lijevu i desnu ploču, kao što je prikazano na donjoj snimci zaslona:
Lijevo okno prikazuje hijerarhijsku strukturu imovine projekta. Kada kliknete bilo koju mapu, prikazat će se detalji na desnoj ploči. Na primjer na danoj slici Montažni dijelovi mapa se klikne na lijevoj ploči pa se njezini detalji prikazuju na desnoj ploči jer sadrži dva predmeta igre. Na lijevoj ploči možete vidjeti a Favoriti odjeljak, gdje možete povlačiti stavke koje želite vrlo često koristiti kako biste izbjegli gubljenje vremena u potrazi za njima. Iznad njega možete vidjeti Stvoriti padajući izbornik koji vam omogućuje stvaranje C # skripte, mape, sjenčanja, GUI kože, scene, montažnog materijala, materijala i još mnogo toga.
Prozor konzole
Prozor konzole mjesto je na kojem možete vidjeti svoje pogreške, upozorenja i poruke. Možete ih prilagoditi klikom na njihove tipke za prebacivanje. Također vam omogućuje brisanje svih pogrešaka, upozorenja i poruka. Možete pauzirati pogreške na određeno vrijeme. Ovdje možete vidjeti na sljedećoj slici
Ikona padajućeg izbornika u gornjem desnom kutu ima opcije za Editor Log i Stack Trace Logging.
Prozor inspektora
Prozor inspektora jedan je od najzanimljivijih i najkorisnijih prozora uređivača. To je mjesto na kojem možete urediti sva svojstva odabranog predmeta igre. Svaki objekt igre ima svoj tip, tako da će se njegova svojstva razlikovati, a prozor inspektora može varirati. Imovina, skripte i predmeti igre razlikuju se po svojstvima. Pogledajmo svojstva kocke u prozoru inspektora. Evo slike:
Objekt igre možete preimenovati klikom na prethodno ime i upisivanjem novog. Dalje ćete vidjeti odjeljak transformacije u kojem možete prilagoditi položaj, rotaciju i skaliranje odabranog predmeta igre. U posljednjem vidite naziv gumba kao Dodaj komponentu, kliknite na njega da biste dodali nove komponente u svoj objekt igre, na primjer ako želite priložiti skriptu, samo kliknite na dodaj komponentu i upišite svoje ime skripte.
Alatna traka
Posljednja je kartica alatne trake, ima mnogo korisnih značajki. Sadrži neke osnovne alate za manipulaciju prikazom scene i objektima. U sredini se nalaze tipke za reprodukciju, pauzu i kontrolu koraka. Sljedeća dva gumba prikazuju vaš Unity oblak i Unity račun. Evo slike kako to izgleda:
Početak rada s jedinstvom
Počnimo stvarati novi projekt u Unityju jer je vrijeme da se poigramo s onim što smo naučili. Dvaput kliknite ikonu Unity, pojavit će se sljedeći prozor:
Unesi naziv projekta, odaberite radno mjesto Mjesto a zatim odaberite vrstu vašeg projekta ili 2D ili 3D. Kliknite na Stvori projekt.
Prema zadanim postavkama vidjet ćete scenu bez naslova koja sadrži glavnu kameru i usmjereno svjetlo u sceni. Počnimo stvarati okruženje.
Građevinsko okruženje
Prije svega stvorite ravninu klikom na Stvori -> 3D objekt a zatim odaberite Avion. Ili ga možete stvoriti klikom na GameObject -> Game Object a zatim odaberite Avion. Idite na prozor hijerarhije i kliknite na avion objekt igre. Sada idite na prozor inspektora i preimenujte ga u Prizemlje. Sada prilagodite vrijednosti transformacije tako da ovaj avion izgleda kao ravna cesta. Samo skalirajte X do 6 i Z do 50. Evo slike kako to izgleda
Sada preuzmite teksturu ceste i nanesite je na zemljišni objekt. Stvorite naziv mape kao Tekstura. Povucite preuzetu teksturu ceste u mapu teksture. Sada odaberite Prizemlje i povucite teksturu ceste u prizoru scene. Evo slike kako to izgleda
Ovo je tekstura koju sam preuzeo
Nakon nanošenja teksture na tlo, kliknite na Tlo i postavite popločavanje u prozoru inspektora. Evo kako sam to postavio.
Sada ste stvorili model ceste, stvorimo model kuglice u jedinstvu.
Ići Stvori -> 3D objekt a zatim odaberite Sfera, u prozoru scene vidjet ćete sferni objekt. Odaberite ga i idite na prozor inspektora da biste ga preimenovali u Lopta. Sada prilagodite vrijednosti transformacije u skladu s tim. Samo ga prilagodite na 5 duž sve tri osi i postavite u središte ceste. Evo kako to izgleda
Sada stvorite ogradu ili zid oko ceste.
Ići Stvori -> 3D objekt a zatim odaberite Kocka. Odaberite ga i preimenujte u Zid1. Idite na prozor inspektora i postavite vrijednosti transformacije tako da izgleda poput zida oko ceste. Evo kako to izgleda:
Pogledajte ove vrijednosti transformacije za Zid1. Ljestvica Y na 6 i Z na 500. Zatim prilagodite njegov položaj tako da dolazi na zavojima ceste.
Sada potražite teksturu zida, preuzmite je i kopirajte na Tekstura mapa u imovini. Povucite teksturu zida na zid u prozoru scene. Podesite obradu tako da izgleda lijepo i glatko. Pločice sam prilagodio kao X na 50, a Y na 1.5. Nakon podešavanja popločavanja ovako izgleda
Ovo je tekstura koju sam koristio za zid
Napravili smo zid za jednu stranu ceste. Sad isto učinite i s druge strane ceste. Umjesto da prođemo kroz sav postupak, možemo samo kopirati Zid1 i preimenujte ga u Zid2.
Odaberi Zid1 u hijerarhijskom prozoru, a zatim desnom tipkom miša kliknite i odaberite Duplikat opcija. Stvorit će još jedan objekt igre iste vrijednosti i vrijednosti transformacije. Kliknite na Zid1 (1) i preimenujte ga u Zid2. Sada prilagodite položaj tako da dođe do drugog ugla ceste.
Pogledajte sljedeću sliku kako izgleda cool
Vrijednosti moje pozicije za Wall2 su od X do -29.6 Y do 2.6 i Z do 2.6.
Sada stvorite materijal za Lopta. Idite na prozor Projekt i stvorite mapu desnim klikom miša, a zatim odaberite Mapa. Nazovite ga kao Materijali. Opet desnom tipkom miša stvorite materijal. Nazovite ga kao crvena lopta. U prozoru inspektora odaberite boju materijala. Ići Glavne karte i odaberite boju Albedo u crvenu. Povećajte metalnu teksturu pomicanjem trake udesno. Povucite ovaj materijal na Lopta u prizoru scene. Evo kako to izgleda
Evo kako materijal izgleda:
Završili smo s razvojem okoliša. Sada je vrijeme za kodiranje. Za to moramo stvoriti skriptu.
Skriptiranje u jedinstvu
Implementirati vlastite značajke igranja i kontrolirati ponašanje igre koju Unity nudi kao skriptni mehanizam. Možete napisati vlastiti skript za željeni rezultat igre. Pomoću ovih skripti možete pokretati događaje u igrama, možete mijenjati svojstva komponente i odgovarati na korisničke unose. U osnovi Unity podržava dva različita programska jezika za skriptiranje, jedan je C #, a drugi JavaScript. Osim ova dva jezika i mnogi drugi .NET jezici također se mogu koristiti s Unity. Skripte su u Unityju poznate kao komponenta ponašanja.
Stvaranje skripte
Počnimo stvarati skriptu Unity. Za to idite na prozor sredstava i stvorite novu mapu s imenom Skripte (možete preskočiti stvaranje novih mapa za svaku novu vrstu materijala, ali to je dobra praksa da se stvari organiziraju). Evo kako sada izgleda prozor moje imovine:
Sada otvorite Skripte mapu, kliknite desni klik, a zatim idite na Stvoriti i odaberite C # skripta. Preimenuj skriptu u Pokret. Stvaramo ovu skriptu za kretanje i kotrljanje lopte po cesti. Za sada lopta miruje, ne radi ništa, stvorimo u njoj neki pokret.
Dvaput kliknite na skriptu Movement koja će se otvoriti u Mono Develop. Ako se vaša skripta ponaša mono, vidjet ćete neki unaprijed napisani kôd poput ovog
pomoću sustava.Zbirke; pomoću sustava.Zbirke.Generički; koristeći UnityEngine; javna klasa MovementScript: MonoBehaviour // Upotrijebi ovo za inicijalizaciju void Start () // Ažuriranje se poziva jednom po praznini okvira Update ()
Možete vidjeti dvije funkcije Start () i Update ().
Početak(): Funkcija Start koristi se za inicijalizaciju varijabli i objekata. Poziva se samo jednom kada je skripta omogućena neposredno prije bilo kojeg drugog poziva funkcije ažuriranja.
Ažuriranje(): To je funkcija mono ponašanja, poziva se jednom u svakom kadru.
Osim ove dvije, postoje i mnoge druge funkcije mono ponašanja, na primjer awake (), fixedUpdate (), lateUpdate () itd.
Da biste prije svega kretali loptu na cesti, morate je učiniti krutim tijelom (idealno je čvrsto tijelo u kojem se zanemaruje deformacija). Odaberi Lopta u hijerarhijskom prozoru i kliknite na Dodaj komponentu gumb u prozoru inspektora. Upišite kruto tijelo i pritisnite Unesi. Čvrsto tijelo pričvrstit će se na Lopta. Sada idite na skriptu i stvorite privatnu varijablu tipa Kruto tijelo. Sada ovoj varijabli koju ste upravo stvorili u skripti dodijelite kruto tijelo Lopte.
privatni Rigidbody rb; rb = GetComponent();
Sada napišite neki kod za kretanje ovog krutog tijela. Kakva je ideja? Lopta bi se trebala pomicati kad pritisnem tipke sa strelicama na ploči s tipkama. Trebao bi se pomicati prema naprijed kad se pritisne tipka prema gore, prema natrag kada se pritisne tipka prema dolje i tako dalje.
Dakle, ulaz koji dolazi s tipkovnice, kako bih trebao dobiti taj ulaz? Klasa unosa Unity ima naziv funkcije GetAxis (), za vraćanje vrijednosti virtualne osi identificirane imenom osi. Stvorite dvije varijable jednu za x-os i jednu za ulaz osi y. Evo kako bi trebalo biti
float moveHorizontal = Ulaz.GetAxis ("Vodoravno");
Sada stvorite varijablu Vector3 da biste dobili vrijednosti kretanja.
Pokret Vector3 = novi Vector3 (moveHorizontal, 0.0f, moveVerticle);
Prvi je parametar vrijednost x osi, drugi je vrijednost y osi i treći je vrijednost z osi. Kako se lopta neće pomicati u smjeru y osi, dodijelite joj nulu. Na kraju dodajte ovaj pokret krutom tijelu i pomnožite s konstantnim brojem za brzinu ili stvorite drugu varijablu za brzinu. Pogledajte donji kod
pomoću sustava.Zbirke; pomoću sustava.Zbirke.Generički; koristeći UnityEngine; pokret javne klase: MonoBehaviour javna brzina plovka; privatni Rigidbody rb; // Koristite ovo za inicijalizaciju void Start () rb = GetComponent(); // Fiksno ažuriranje poziva se nakon fiksnog broja praznina okvira FixedUpdate () float moveHorizontal = Input.GetAxis ("Horizontalno"); float moveVerticle = Ulaz.GetAxis ("Vodoravno"); Pokret Vector3 = novi Vector3 (-1 * moveHorizontal, 0.0f, -1 * moveVerticle); rb.AddForce (kretanje * brzina);
Kako je brzina javna varijabla, tako možete dodijeliti vrijednost u prozoru inspektora. Priložite ovu skriptu na kuglu povlačenjem na prozor inspektora ili pritiskom Dodaj komponentu dugme. Pritisnite gumb za reprodukciju i testirajte svoje kodiranje ili se lopta kreće ili ne.
Postavljanje kamere
Posljednje što ćete primijetiti je kad pritisnete tipku za naprijed i lopta se krene izlazi iz kamere jer kamera miruje. Što da radimo? Trebali bismo i mi pomaknuti kameru? Da, to je najjednostavnije učiniti. Napravite dijete od lopte povlačenjem glavne kamere do lopte.
Zaključak
Ovo je bio osnovni uvodni tutorial u kojem ste u Unityju naučili mnoge zanimljive značajke, izgradnju okoliša i skriptiranje. Ne ustručavajte se, započnite s izradom svoje prve igre već danas i uživajte!