Mängud

Unity3D õpetus

Unity3D õpetus

Sissejuhatus Unity 3D-sse

Unity 3D on võimas mängude arendamise mootor. See on platvormidevaheline, mis võimaldab teil luua mänge mobiilseadmetele, veebis, lauaarvutitele ja konsoolidele, kokku umbes 30 platvormi. Unity 3D-l on palju põnevaid funktsioone, mõned neist on toodud allpool:

Ühtsuse liidesed

Uurime Unity editori liideseid, mis on seadistatavad.  See koosneb koputatavatest akendest, mida saate vastavalt vajadusele ümber korraldada.  Uurime akna vaikeseadeid. Siin on pilt, kuidas see välja näeb

Hierarhiaaken

Hierarhia aken tähistab kõiki stseeni objekte. See näitab, kuidas objektid on stseenis omavahel seotud, nii et need kaks akent on omavahel seotud. Hierarhiaaknas on rippmenüü nimega Loo. Tühja objekti, 3D-objekte, 2D-objekte, valguse-, heli-, video-, osakeste süsteemi- ja kaameraobjekte saate luua väga lihtsalt. Hierarhiaaken on näidatud allpool. "Pealkirjata" on stseeni nimi. Võite selle ümber nimetada, kui soovite. Pealkirjata (stseeni nimi) paremas servas näete rippmenüü ikooni. Sellel rippmenüül klõpsates näete erinevaid valikuid Salvesta stseen ja Lisage uus stseen.

Stseeni aken

Stseeniaken on koht, kus loote oma stseeni. Seal saate suhelda oma mänguobjektide ja mudelitega. Saate oma stseeniobjekte muuta, muuta ja ümber paigutada. See on aken, kus hakkate Unityga töötama. Stseenivaade võib olla 2D või 3D, sõltuvalt teie projekti seadistusest. Siin on ekraanipilt stseeniakna väljanägemisest:

Stseeniaknas näete teist vahekaarti sildiga Varjutatud, siin saate valida, millist tüüpi vaate soovite varjutada või traatvõrku. Sellel on palju muid võimalusi, nagu Mitmesugused, Globaalne valgustus, Reaalajas GI, Küpsetatud GI ja paljud teised. 2D- või 3D-vormingus saate vaadata nupu kõrval asuvat nuppu Varjutatud rippmenüüst. Järgmine on stseeni valgustuse lülitusnupp. Samamoodi stseeniheli lülitusnupp. Järgmine on rippmenüü, et lubada taevakast, udu, animeeritud materjal ja pildiefektid.

Mänguaken

Mänguaken näitab teie viimast avaldatud mängu mängurežiimis. See renderdatakse kaameratest, mida oma mängus kasutasite. Mänguaknas näete veel ühte tööriistariba, nagu ekraanipildis allpool näidatud:

Ekraan 1 näitab teie mängustseenis olevat kaamerat. Vaikimisi on see seatud väärtusele Kuva 1 põhikaamera jaoks. Kui teil on mitu kaamerat ja soovite vahetada, saate valida rippmenüüst. Selle kõrval on kuvasuhete rippmenüü. Saate valida vastavalt oma sihtseadme monitori ekraanile. Järgmisena näete a Skaala liugur sisse suumimiseks. Kerige paremale ja uurige oma stseeni üksikasju mängurežiimis. Järgmine on nupp Maksimeeri mängus, kui klõpsatakse, on mängu akna suurus mängurežiimis maksimaalne. Heli vaigistamine lülitit kasutatakse heli vaigistamiseks / vaigistuse tühistamiseks. Statistika näitab teie mängu heli ja graafika renderdamise statistikat.

Projekti varade aken

Nime järgi on varade aknas kõik teie projekti varad, mida saate kasutada. Kui impordite midagi uut, kuvatakse see projekti varade aknas. Projekti vara aknal on kaks osa, vasak paneel ja parem paneel, nagu on näidatud alloleval ekraanipildil:

Vasak paan näitab projekti varade hierarhilist struktuuri.  Kui klõpsate mis tahes kaustal, kuvatakse paremal paneelil üksikasjad. Näiteks antud joonisel Eelpaneelid kaust klõpsatakse vasakul paneelil, nii et selle üksikasjad kuvatakse paremal paneelil, kuna see sisaldab kahte mänguobjekti. Vasakul paneelil näete a Lemmikud jaotises, kus saate lohistada üksusi, mida soovite väga sageli kasutada, et vältida nende otsimisel ajakulu. Selle kohal näete a Loo rippmenüü, mis võimaldab teil luua C # skripti, kausta, varjuri, graafilise kasutajaliidese naha, stseeni, paneeli, materjali ja palju muud.

Konsooli aken

Konsooliaken on koht, kus näete oma vigu, hoiatusi ja teateid. Saate neid reguleerida, klõpsates nende vahetamisnuppe. See võimaldab teil ka kõik vead, hoiatused ja teated kustutada. Vigad saate teatud ajaks peatada. Siin näete järgmist joonist

Parimas ülanurgas oleval rippmenüü ikoonil on valikud redaktori logi ja virnade jälgimise logimiseks.

Inspektori aken

Inspektori aken on redaktori üks huvitavamaid ja kasulikumaid aknaid. See on koht, kus saate redigeerida kõiki valitud mänguobjekti omadusi. Igal mänguobjektil on oma tüüp, nii et nende omadused on erinevad ja inspektori aken võib erineda. Varad, skriptid ja mänguobjektid erinevad omaduste poolest. Vaatab inspektori aknas kuubi omadusi. Siin on pilt:

Mänguobjekti saab ümber nimetada, klõpsates lihtsalt eelmisel nimel ja tippides uue. Järgmisena näete teisenduse jaotist, kus saate reguleerida valitud mänguobjekti positsiooni, pööret ja suurust. Viimases näete nupu nime kui Lisage komponent, klõpsake sellel, et lisada oma mänguobjektile uusi komponente, näiteks kui soovite lisada skripti, klõpsake lihtsalt nupul Lisa komponent ja sisestage skripti nimi.

Tööriistariba

Viimane on tööriistariba vahekaart, sellel on palju kasulikke funktsioone. See sisaldab mõningaid põhivahendeid stseenivaate ja objektidega manipuleerimiseks. Keskel on nupud mängimiseks, peatamiseks ja sammude juhtimiseks. Järgmised kaks nuppu näitavad teie Unity pilve ja Unity kontot. Siin on joonis, kuidas see välja näeb:

Alustamine ühtsusega

Alustame Unity'is uue projekti loomist, sest on aeg õppida õpituga. Topeltklõpsake ikoonil Unity, kuvatakse järgmine aken:

Sisenema Projekti nimi, valige töökoht Asukoht ja seejärel valige oma projekti tüüp kas 2D või 3D. Kliki Loo projekt.

Vaikimisi näete stseenis pealkirjata stseeni, mis sisaldab põhikaamerat ja suunavalgust. Alustame keskkonna loomist.

Ehituskeskkond

Kõigepealt looge lennuk, klõpsates nuppu Loo -> 3D-objekt ja seejärel valige Lennuk. Või võite selle luua, klõpsates nuppu GameObject -> mänguobjekt ja seejärel valige Lennuk. Minge hierarhiaaknasse ja klõpsake lennukimängu objektil. Nüüd minge inspektori aknasse ja nimetage see ümber Maa. Nüüd reguleerige teisendusväärtusi nii, et see lennuk näeks välja nagu sirge tee. Lihtsalt skaala X kuni 6 ja Z kuni 50. Siin on pilt, kuidas see välja näeb

Nüüd laadige alla tee tekstuur ja kandke see maaobjektile. Looge kausta nimi tekstuurina. Lohistage allalaaditud tee tekstuur kausta Texture. Nüüd valige Maa ja lohistage stseenivaates tee tekstuuri. Siin on pilt, kuidas see välja näeb

See on tekstuur, mille ma alla laadisin

Pärast tekstuuri maapinnale klõpsamist klõpsake valikut Maapind ja määrake inspektori aknas plaatimine. Siin on, kuidas ma selle seadsin.

Nüüd olete loonud teemudeli, loome ühtselt pallimudeli.

Minema Loo -> 3D-objekt ja seejärel valige Sfäär, näete stseeniaknas sfääriobjekti. Valige see ja minge inspektori aknale, et see ümber nimetada Pall. Nüüd kohandage muundamisväärtusi vastavalt. Mõõtke see kõigil kolmel teljel lihtsalt viieks ja viige tee keskele. Nii see välja näeb

Nüüd looge tee ümber tara või sein.

Minema Loo -> 3D-objekt ja seejärel valige Kuup. Valige see ja nimetage see ümber Sein1. Minge inspektori aknasse ja määrake teisendusväärtused nii, et see näeks välja nagu tee ümber olev sein. See näeb välja järgmine:

Vaadake neid teisendusväärtusi Sein1. Skaala Y kuni 6 ja Z kuni 500. Seejärel reguleerige oma asend nii, et see jõuaks teekaldadesse.

Nüüd otsige seina tekstuuri, laadige see alla ja kopeerige Tekstuur kaust varades. Lohistage seina tekstuur stseeniaknas seina külge. Korrige harimist nii, et see näeks kena ja sile välja. Reguleerisin plaatide suuruse X väärtuseks 50 ja Y väärtuseks 1.5. Pärast plaatide seadistamist näeb see välja

Seda tekstuuri kasutasin seina jaoks

Oleme loonud seina ühele teepoolele. Nüüd tehke sama ka teisel pool teed. Selle asemel, et läbida kogu protsess, saame lihtsalt kopeerida Sein1 ja nimetage see ümber Wall2.

Valige Sein1 hierarhiaaknas ja paremklõpsake ning seejärel valige Duplikaat valik. See loob teise mänguobjekti, millel on sama suurus ja teisendusväärtused. Kliki Müür1 (1) ja nimetage see ümber Wall2. Nüüd reguleerige asend nii, et see jõuaks teise tee nurka.

Vaadake järgmist pilti, kui lahe see välja näeb

Minu Wall2 positsiooni väärtused on X kuni -29.6 Y kuni 2.6 ja Z kuni 2.6.

Nüüd looge materjal Pall. Minge projekti aknasse ja looge hiirega paremklõpsates kaust ja valige Kaust. Pange see nimeks Materjalid. Jällegi paremklõpsake hiirt ja looge materjal. Pange see nimeks punanePall. Inspektori aknas valige materjali värv. Minema Põhikaardid ja valige Albedo värv punaseks. Suurendage metallilist tekstuuri, kerides riba paremale. Lohistage see materjal Pall stseenivaates. Nii see välja näeb

Materjal näeb välja nii:

Nii et oleme oma keskkonna arendamisega valmis. Nüüd on aeg kodeerida. Selleks peame looma skripti.

Skriptimine ühtsuses

Oma gameplay funktsioonide rakendamiseks ja Unity skriptimismehhanismina pakutava mängu käitumise juhtimiseks. Mängu soovitud väljundi jaoks saate kirjutada oma skripti. Nende skriptide abil saate käivitada mängu sündmusi, muuta komponendi omadusi ja reageerida kasutaja sisenditele. Põhimõtteliselt toetab Unity skriptimiseks kahte erinevat programmeerimiskeelt, üks on C # ja teine ​​on JavaScript. Muud kui need kaks keelt paljud teised .NETi keeli saab kasutada ka Unityga. Skripte tuntakse Unity's käitumiskomponendina.

Skripti loomine

Alustame Unity skripti loomist. Selleks minge varade aknasse ja looge uus nimega kaust Skriptid (võite jätta vahele uue kausta loomise iga uut tüüpi vara jaoks, kuid selle hea tava asjade korrastamiseks). Minu varade aken näeb nüüd välja järgmine:

Nüüd avage Skriptid kaust, paremklõpsake ja minge siis Loo ja valige C # stsenaarium. Nimeta skript ümber Liikumine. Loome selle stsenaariumi palli liikumiseks ja teele veeretamiseks. Praegu on pall paigal, ei tee midagi, loome selles mingi liikumise.

Topeltklõpsake liikumisskriptil, mis avaneb rakenduses Mono Develop. Kui teie skript on monokäitumine, näete mõnda eelnevalt kirjutatud koodi

kasutades süsteemi.Kogud; kasutades süsteemi.Kogud.Üldine; kasutades UnityEngine'i; public class MovementScript: MonoBehaviour // Kasutage seda initsialiseerimiseks void Start ()  // Uuendust kutsutakse üks kord kaadris void Update ()  

Näete kahte funktsiooni Start () ja Update ().

Algus (): Start-funktsiooni kasutatakse muutujate ja objektide lähtestamiseks. Seda kutsutakse ainult üks kord, kui skript on lubatud vahetult enne muude värskendusfunktsioonide väljakutseid.

Värskenda (): See on monokäitumisfunktsioon, seda kutsutakse üks kord igas kaadris.

Peale nende kahe on palju muid monokäitumise funktsioone, näiteks ärkvel (), fixedUpdate (), lateUpdate () jne.

Palli liikumiseks teel peate kõigepealt muutma selle jäigaks korpuseks (see on ideaalne kindel keha, kus deformatsioon jäetakse tähelepanuta). Valige Pall hierarhiaaknas ja klõpsake nuppu Lisage komponent inspektoriakna nupp. Sisestage jäik kere ja vajutage Sisenema. Jäik kere kinnitub kere külge Pall. Nüüd minge skripti ja looge tüüpi privaatne muutuja Jäik keha. Nüüd määrake palli jäik keha sellele just skriptis loodud muutujale.

privaatne Rigidbody rb; rb = GetComponent (); 

Nüüd kirjutage selle jäiga keha liikumiseks mõni kood. Mis idee on? Pall peaks liikuma, kui vajutan võtmeplaadi nooleklahve. See peaks liikuma ülesnupu vajutamisel edasi, allaklahvi vajutamisel tahapoole ja nii edasi.

Nii et klaviatuurilt tulev sisend, kuidas ma peaksin selle sisendi saama? Unity's Input klassil on funktsiooni nimi GetAxis (), tagastab telje nimega identifitseeritud virtuaalse telje väärtuse. Looge kaks muutujat, üks x-telje jaoks ja teine ​​y-telje sisestamiseks. Nii peaks see olema

float moveHorizontal = Sisend.GetAxis ("horisontaalne"); 

Nüüd loo liikumisväärtuste saamiseks muutuja Vector3.

Vector3 liikumine = new Vector3 (moveHorizontal, 0.0f, moveVerticle); 

Esimene parameeter on x-telje väärtus, teine ​​on y-telje väärtus ja kolmas on z-telje väärtus. Kuna pall ei liigu y-telje suunas, määrake sellele null. Lõpuks lisage see liikumine jäigale kerele ja korrutage kiiruse konstantse arvuga või looge kiiruse jaoks teine ​​muutuja. Vaadake kogu koodi allpool

kasutades süsteemi.Kogud; kasutades süsteemi.Kogud.Üldine; kasutades UnityEngine'i; avalik klass Liikumine: MonoBehaviour public float speed; privaatne Rigidbody rb; // Kasutage seda initsialiseerimiseks void Start () rb = GetComponent ();  // Fikseeritud värskendust kutsutakse pärast raami fikseeritud numbri tühistamist FixedUpdate () float moveHorizontal = Input.GetAxis ("horisontaalne"); float moveVerticle = Sisend.GetAxis ("horisontaalne"); Vector3 liikumine = new Vector3 (-1 * moveHorizontal, 0.0f, -1 * moveVerticle); rb.AddForce (liikumine * kiirus);  

Kuna kiirus on avalik muutuja, saate inspektori aknas väärtuse määrata. Kinnitage see skript pallile, lohistades selle inspektoriaknasse või vajutades Lisage komponent nuppu. Vajutage esitamisnuppu ja testige, kas kodeerite, kas pall liigub või mitte.

Kaamera seadistamine

Viimane asi, mida märkate, on see, kui vajutate edasi-nuppu ja pall hakkab liikuma, see läheb kaamerast välja, kui kaamera seisab. Mida me peaksime tegema? Ka meie peaksime kaamerat liigutama? Jah, see on kõige lihtsam asi, mida teha. Pange kaamera lapsele, lohistades peamise kaamera palli juurde.

Järeldus

See oli põhiline sissejuhatav õpetus, kus õppisite Unity'is palju huvitavaid funktsioone, keskkonna loomist ja skriptimist. Ärge kartke, alustage juba täna oma esimese mängu loomist Unityga ja nautige!

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
X-Mouse Button Control abil saate hiire nupud erinevates tarkvarades erinevalt ümber teha
Võib-olla vajate tööriista, mis võiks muuta teie hiire juhtimissüsteemi iga kasutatava rakendusega. Sel juhul võite proovida rakendust nimega X hiiren...
Microsoft Sculpt Touch juhtmeta hiirte ülevaade
Lugesin hiljuti Microsoft Sculpt Touch juhtmevaba hiir ja otsustas selle osta. Pärast mõnda aega kasutamist otsustasin jagada sellega oma kogemusi. Se...