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:
- Maksumus: Unity 3D isiklik versioon on algajatele, üliõpilastele ja harrastajatele tasuta. Unity Personalil on kõik Ühtsuse põhijooned. Sellel on ka põhianalüütika, pilveehitus, reklaamid, mitmikmäng, rakendusesisesed ostud ja platvormiülesed funktsioonid. Peale nende funktsioonide on Unity personalil ka mõned piirangud. Tõsistele loojatele ja professionaalidele on saadaval ka kaks muud versiooni Unity Plus ja Unity Pro, hinnaga 35 dollarit kuus.
- Kõik ühes redaktor: Ühtsust tuntakse kui ühte toimetajat. Unity redaktoril on muljetavaldavate kogemuste kujundamiseks mitu kunstnikusõbralikku tööriista. Sellel on tugev arendajate tööriistade komplekt mängu loogika ja tipptasemel mängimise rakendamiseks. Samuti võimaldab Unity luua nii 2D- kui ka 3D-mänge. See sisaldab ka navigatsioonisüsteemil põhinevaid tehisintellekti leidmise tööriistu. Sellel on suurepärane sisseehitatud süsteem pilkupüüdvate kasutajaliideste loomiseks. Selle Box2D füüsikamootor võimaldab meil luua realistlikku liikumist, hoogu, jõudu ja mängimist.
- Platvormid: Unity toetab paljusid erinevaid platvorme nagu Linux, IOS, Android, Windows jne. kokku ligi 30 platvormi.
- Virtuaalne ja liitreaalsus: Ühtsus toetab virtuaalse ja liitreaalsuse arendamist. See on XR-i arendamiseks kõige laialdasemalt kasutatav mootor. Sellel on Unity Plus'is virtuaalse ja liitreaalsuse jaoks Microsofti HoloLens, Stream VR / Vive, Gear VR ja PlayStation VR tugi.
- Mitmikmäng: Reaalajas võrgustatud ja mitme mängijaga mängude jaoks on parim valik Unity. See pakub servereid reaalajas koostööks.
- Mootori jõudlus: Unity mootori jõudlus on erakordne. Intensiivsete stsenaariumide jaoks on tulemas mitmekeermeline arvutussüsteem. Unity mootoril on täiustatud profileerimistööriistad, mis määravad, kas teie mäng on seotud protsessoriga või mitte, ning ütleb ka, kuidas seda paremate kogemustega optimeerida.
- Unity Asset Store: See on tohutu tasuta ja tasulise sisu kataloog. Arendusaja pikendamiseks laadige alla palju sisseehitatud tasuta mudeleid ja varasid. Isegi Unity varapoes on terviklikud projektid nii tasuta kui ka tasulised.
- Graafika renderdamine: Unityl on üks parimatest graafilise renderdamise süsteemidest. See võimaldab teil luua selliseid keskkondi nagu helendav päev, neoonmärkide hõõguv kuma, hämarad keskööd ja varjulised tunnelid. See toodab hämmastavaid visuaalseid efekte. Kuigi Unity toetab mitut platvormi, kuid püüab see parimate tulemuste ja sujuva kasutuskogemuse saamiseks katta iga platvormi madala taseme graafilise API.
- Meeskonna koostöö: Sellel on funktsioonid, mis võimaldavad koostööd ja lihtsat töövoogu. Unity pilvemälu võimaldab teil oma projekte kõikjal salvestada, jagada ja sünkroonida.
- Toimivuse aruandlus: Ühtsuse tulemuslikkuse aruandlussüsteem tegeleb probleemidega reaalajas. Kõrge prioriteediga küsimused lahendatakse väga tõhusalt. Leiab rakenduste vead kõigis seadmetes ja platvormides.
Ü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!