< Return to Video

Unity 5 - Roll a Ball game - 2 of 8: Moving the Player - Unity Official Tutorials

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

more » « less
Video Language:
English
Duration:
15:00

Finnish subtitles

Incomplete

Revisions