-
Nyt liikutetaan pelaajaa.
-
Ensiksi mietitään miten halutaan tämän
-
pelaajaobjektin käyttäytyvän.
-
Haluamme, että pallo liikkuu ympäri
-
peliarenaa, törmää seiniin, pysyy maassa
-
eikä lennä pois avaruuteen.
-
Haluamme, että voimme törmätä kerättävien
-
objektien kanssa ja kerätä ne.
-
Tämä tarvitsee fysiikkaa.
-
Käyttääkseemme fysiikkaa peliobjekti
-
tarvitsee jäykän kappaleen
-
(rigidbody) komponentin.
-
Kiinnittääksemme uuden komponentin pitää
-
ensin valita peliobjekti johon haluamme
-
sen kiinnittää. Eli nyt valitsemme
-
pelaajaobjektin.
-
Sitten voimme valita komponentti valikon
-
ja valita Physics - Rigid Body
-
Joka kiinnittä tämän komponentin objektiin
-
jonka olemme valinneet.
-
Tai valitaan Add Component inspectorista
-
ja valitaan Physics - Rigid Body.
-
Näin saamme jäykän kappaleen kiinnitettyä
-
valittuun peliobjektiin.
-
Jos haluamme, voimme muuttaa
-
komponenttien järjestystä peliobjektissa
-
käyttäen gear-valikkoa komponentin
-
yläoikealla inspector palkissa.
-
Tällä ei ole vaikutusta pelin toimintaan.
-
Kuitenkin järkevällä järjestyksellä
-
peliobjektissamme me veoimme nopeuttaa
-
toimintaa pitämällä projekti
-
järjestelmällisenä.
-
Voimme myös pienentää ja suurentaa
-
komponentteja painamalla otsikosta
-
Meidän tulee huomata, että tekemällä näin
-
me myös kytkemme kyseiset kilkkeet
-
kyseiselle komponentille kohtausnäkymässä.
-
Nyt laitamme pelaajaobjektin
-
liikkumaan käskyjemme mukaan.
-
Tätä varten tarvisemme inputin
-
pelaajallemme näppäimistöstä ja meidän
-
tarvitsee sen inputin luovan voiman
-
objektillemme
-
jotta pallo liikkuu.
-
Käytämme tähän skriptiä jonka kiinnitämme
-
peliobjektiimme.
-
Ekaksi luodaan kansio projektinäkymään
-
skriptejämme varten.
-
Projektinäkymässä paina Create menu
-
ja valitse Create Folder.
-
Muuta kansion nimeksi Scripts.
-
Luodaan nyt uusi C# skripti.
-
Uuden skriptin luomiseksi voimme joko
-
valita Assets - Create
-
luodaksemme C# skritimme.
-
Tai voimme käyttää Create menua.
-
Mutta tehokkainta tällä kertaa
-
on valita peliobjektimme
-
ja valita Add Component inspektorista
-
-
Uusi skripti (New Script).
-
Tämä luo ja kiinnittää
-
skritimme yhdellä kertaa.
-
Annetaan skriptille nimi PlayerController.
-
Voimme valita scriptin kielen
-
valitsemme C# ja painamme create ja add.
-
Tai painamme vain enteriä
-
vahvistaaksemme valinnan.
-
Unity luo, kääntää ja kiinnittä tämän
-
skriptin valittuun objektiin.
-
Meidän täytyy huomata, että tällä tavalla
-
luomme skriptin juureen
-
tai ylätasolle projekti näkymässä.
-
Siirretään skripti Script-kansioon
-
pitääksemme projektin organisoituna.
-
Jos valitsemme skriptin projektinäkymässä
-
näemme skriptin sisällön inspektorissa,
-
mutta emme voimme muokata sitä.
-
Avataan skriptimme.
-
Tämän voimme tehdä monella eri tavalla.
-
Kun tutkimme peliobjektiamme
-
voimme käyttää gear menua.
-
Voimme tuplaklikata
-
skriptiä projektinäkymässä
-
tai voimme käyttää avaa nappia
-
inspektorissa kun meillä
-
on skripti valittuna projektinäkymässä.
-
Tämä avaa skripimme skriptieditorissa.
-
Ensiki poistamme mallikoodin
-
pohjasta.
-
Seuraavaksi mietitään,
-
mitä haluamme koodin tekevän?
-
Haluamme tarkistaa joka kuvalla inputin
-
ja käyttää tuota tietoa
-
joka kuvassa pelaajan liikeenä.
-
Missä voime tämän tehdä?
-
Meillä on kaksi vaihtoehtoa.
-
Update ja Fixed Update.
-
Update kutsutaan ennen jokaista kuvaa
-
ja tätä käytetään useimmiten.
-
Fixed Updatea kutsutaan juuri ennen kuin
-
fysiikka laskuja ja tämä on juuri se
-
mihin meidän fysiikka koodi menee.
-
Liikutamme palloa käyttämällä voimaa
-
jäykkään kappaleeseen. Tämä on fysiikkaa.
-
Joten laitamme koodimme Fixed Updateen.
-
Mitä muuta koodiin kirjoitamme?
-
Tarvitsemme inputin,
-
mutta mistä löydämme lisää?
-
On olemassa oikotie Monodevelopiin
-
joka etsii unityn rajapinnasta.
-
Mäkillä command + '
-
ja PC:llä control + '.
-
Valitse mitä haluat etsiä
-
meidän tapauksessa valitse input
-
ja pidä command tai control nappia alhaalla
-
ja paina ' nappia
-
tämä etsii jokaisen sivun
-
dokumentissa joka liittyy inputtiin.
-
Valitse input ylhäältä
-
-
Tämä tuo inputin sivu.
-
Tämä input luokan sivu.
-
Käytämme tätä luokkaa lukeaksemme
-
akseli asetuksista
-
input managerissa ja pääsystä multitouch
-
kosketukseen ja kiihtyvyys dataan
-
kannettavissa laitteissa.
-
Luetaan teksti sivun ylhäältä
-
ymmärtääksemme miten luokkaa käytetään.
-
Tapauksessamme saadakseemme i
-
nput pelaajallemme
-
kaikilla alustoilla, myös kannettavilla.
-
Selityksessä on lista luokan muuttujista
-
ja luokan funktioista.
-
Luokan muuttujat sisältävät
-
kosketusten lukumäärän touchCountissa
-
tai kuvaus oletus gyroskoopista gyrolla.
-
Luokan funktiot ovat meitä varten.
-
Koodissamme käytämme Input.GetAxis.
-
Kun löydämme jotain mitä haluemme käyttää
-
painamalla linkkiä saadaan esille sivu
-
funktiosta tai muuttujasta.
-
Katsotaan tarkemmin Input.GetAxis:ia.
-
Tämä sivu sisältää tiedon funktiosta,
-
kuvauksen funktiosta
-
ja esimerkin miten käyttää sitä
-
Unityn javascriptinä ja C#:nä.
-
Käytämme C#.
-
Lisätiedoksi input managerista ja
-
Input.GetAxis:sta katso linkit alhaalla.
-
Me käytämme Input.GetAxis:sia samalla
-
tavalla kuin mallikoodissa.
-
Palataan skriptiimme ja kirjoitetaan
-
koodimme.
-
float moveHorizontal = Input.GetAxis ("horizontal")
-
float moveVertical = Input.GetAxis ("vertical")
-
näin saamme inputin näppäimistöstä.
-
float muuttuja moveHorizontal ja
-
moveVertical tallentaa inputin pysty
-
ja vaaka akseleilla, joita käytetään
-
näppäimistöllä.
-
Pelaajaobjekti käyttää jäykkää kappaletta
-
ja vuorovaikuttaa pelimoottorin kanssa.
-
Me käytämme inputtia vaikuttaaksemme
-
jäykkään kappaleeseemme
-
ja liikutetaan pelaajaobjektiamme.
-
Tietääksemme voiman käytöstä jäykkään
-
kappaleeseen katsotaan dokumentaatiota.
-
Kirjoita Rigidbody skriptiimme.
-
Valitse rigidbody ja paina
-
command näppäintä mäkillä
-
tai control näppäintä PC:llä
-
ja paina '.
-
Taas, tämä tuo sivut rigidbodystä.
-
Painetaan Rigidbodya.
-
Tämä tuo jäykän kappaleen sivun.
-
Jos haluamme käyttä ävoimaa objektiimme
-
meidän täytyy tehdä jotain.
-
Katsotaan käytettävissä olevia funktioita
-
rigidbody luokassa.
-
Luetaan kuvauksia kunnes löydämme
-
mitä haluamme. Tässä tapauksessa
-
valitaan AddForce.
-
Tämä lisää voiman jäykkään kappaleeseen
-
jonka takia kappale alkaa liikkua.
-
Linkistä pääsemme AddForce-sivulle.
-
Näemme funktion kutsutiedon
-
sivun yläosassa.
-
Tämä kertoo, että tarvitsemme vector3
-
ja ylimääräisen ForceMode saadakseemme
-
voiman jäykkään kappaleeseen.
-
Mikä on vector3?
-
Lisäinformaatioksi vector3:sta katso
-
linkki alhaalta.
-
Mutta yksinkertaisesti se pitää sisällään
-
3 desimaaliarvoa yhdessä paikassa.
-
Tämä helpottaa liikkumista
-
ja käyttääksemme voimaa 3D-avaruudessa,
-
joka tarvitsee arvot voimalle
-
X-, Y- ja Z-akseleille.
-
Tai kuvaus kierrolle joka myös tarvitsee
-
arvot jokaiselle X-, Y- ja Z-akseleille.
-
Kaikki dokumentaatiosivut ovat linkitetty
-
toisiinsa.
-
Jos painetaan Vector3:sta, päädymme
-
Vector3:n dokumentaatiosivulle.
-
Sama pätee myös muille käskyille.
-
Kuvauksen alla on esimerkit
-
kuinka tätä funktiota käytetään.
-
Huomaa toinen syntaksi AddForcelle.
-
Kuvaukset ovat samat,
-
mutta voimme käyttää vector3:sta
-
tai 3 float arvoa X,Y ja Z.
-
Seuraava täytyy ratkaista asia kuinka
-
saadaan pidettyä tai saadaan liitettyä
-
eri komponentit peliobjektiimme.
-
Me kirjoitamme skriptiä PlayerController.
-
Joka on lisätty skriptikomponenttinä
-
peliobjektiimme.
-
Tätä skriptiä varten tarvitsemme AddForce
-
käyttäen jäykän kappaleen komponenttia.
-
Haluamme käyttää tuota komponenttia.
-
On muutama tapa tehdä se.
-
Mutta me keskitymme vain yhteen tapaan
-
käyttää toista komponenttia
-
samassa objektissa.
-
Luomme muuttujan säilyttääksemme
-
tämän viittauksen skriptissämme
-
ja asetamme tämän viittauksen
-
Start-funktiossa.
-
Näemme tämän koodiesimerkissä.
-
public Rigidbody rb luo julkisen muuttujan
-
jäykän kappaleen tyypin rb pitääksemme
-
viittauksen jäykkään kappaleeseen
-
mihin haluamme päästä
-
Start viittaus asetetaan käyttämällä koodia
-
GetComponent
-
Tmä tuo viittauksen jäykästä kappaleesta
-
jos semmoinen on.
-
Kaikki koodi start-funktiossa on kutsuttu
-
ensimmäisessä kuvassa, jossa skripti on
-
aktivoitu.
-
Tämä on usein ensimmäinen kuva pelissä.
-
Viimeksi FixedUpdate on kiinnitetty
-
rigidbody komponenttiin
-
muuttujan avulla joka on nimetty rb:ksi
-
rb.AddForcen avulla.
-
Joten skriptissämme kirjoitamme
-
private Rigidbody rb luodakseemme
-
muuttujan joka sisältää viittauksen
-
Ja uudessa start-funktiossa kirjoitamme
-
rb=GetComponent
-
FixedUpdatessa
-
käytetään Rigidbody.AddForce.
-
yksinkertaisesti vector3:sen avulla
-
ja jätetään ForceMode oletukseksi
-
jättämällä se pois koodistamme.
-
Joten koodiimme kirjoitetaan
-
rb.AddForce ja muutamia vector3 arvoja.
-
Kuinka saamme kaksi float-arvoa
-
vector3 arvoiksi.
-
Luodaan uusi vector3-muuttuja Movement.
-
Tämä on sama kuin uusi vector3
-
joka on tehty Xsta, Y:sta ja Z:sta.
-
X, Y ja Z arvot päättävät voiman suunnan
-
jonka lisäämme palloomme.
-
Mikä on X arvo?
-
Se on moveHorizontal.
-
Tämän avulla vasen ja oikea näppäin
-
liikuttaa palloa vasemma tai oikealle.
-
Mikä on Y? 0.
-
Emme halua liikkua ylös.
-
Mikä on Z? se on moveVertical.
-
Käyteään Movement vector3 arvoa
-
rb.AddForce:ssa
-
kirjoittamalla rb.AddForce(movement).
-
Tallennetaan skripti ja palataan Unityyn.
-
Tarkastetaan mahdolliset virheet
-
ja niitä ei ole. Hyvä.
-
Testataan mitä kirjoitimme.
-
Paina Play ja paina näppäimiä
-
pallo liikkuu.
-
Mutta se on tosi hidas.
-
Liian hidas peliin, mutta konsepti toimii
-
täysin.
-
Lopetetaan testaus ja jätetään pelitila.
-
Palataan koodin ja tehdään työkalu
-
jolla voimme muuttaa pallon nopeutta.
-
Kerromme liikkumisen jollain arvolla.
-
Me voimme kirjoittaa sen suoraan skriptiin
-
mutta jos haluamme muuttaa sitä myöhemmin
-
meidän pitäisi palata muokkaamaan koodia
-
ja kääntää koodin uudelleen.
-
Tämä vie aikaa.
-
Ratkaisu on luoda julkinen muuttuja.
-
Luodaan public float
-
jota nimi on Speed.
-
Kun näin tehdään
-
tämä muuttuja löytyy Inspectorista
-
muutettavana ominaisuutena.
-
Julkisella muuttajalla voimme tehdä kaikki
-
muutokset editorissamme.
-
Sitten kerromme Movement:in Speed:illä.
-
Nyt voimme kontrolloida liikkumista
-
suoraan editorissa.
-
Tallennetaan koodi ja palataan Unityyn.
-
Kun palataan editoriin, näemme, että
-
PlayerContoller skripti sisältää speedin.
-
Laitetaan tähän arvoksi 100.
-
Kokeillaan peliä.
-
Pyhä Jysäys! Ihan liian nopeaa!
-
Poistutaan pelimoodista
-
ja muutetaan arvoksi 10.
-
Paina Play.
-
Vähän parempi.
-
Onneksi olkoon!Voimme liikuttaa palloamme.
-
Seuraavassa harjotteessa tutkitaan kameraa