SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Unity3d perusteet
KEVÄT 2015
SODANKYLÄ/KITTILÄ
JONI AHOLA
Opettaja
 Joni Ahola
 Työskentelee yrityksessä Juotos.
 Juotos on yhden henkilön koodipaja. Juotos tekee nettisivuja, mobiiliappseja ja
pelejä
 RAMK valmistunut keväällä 2013 Ohjelmistotekniikan insinööriksi
Sisältö
 Miksi Unity3d?
 Asennus ja projektin luonti
 Ohjelman käyttöliittymä
 Tyypilliset pelielementit
 C# perusteet ja skriptien rakenne
Miksi juuri Unity3d?
 Pystyy tekee monelle alustalle:
 iOS, Android, Windows Phone 8, BlackBerry 10
 Windows, Mac, Linux, Nettiselaimet
 PS3/4/Vita, Playstation Mobile, Xbox One/360, WiiU
 Suosituin pelimoottori: 45% markkinaosuus. NASA, Microsoft, Square, Ubisoft
käyttää
 Wasteland 2, Temple Run 2
 Voi käyttää myös ilmaiseksi
 Ei pohjaudu mihinkään valmiiseen peliin
Asennus ja ohjelman käynnistys
 Lataa http://unity3d.com/unity/download tai tikulta
 Ensimmäisellä kerralla kysyy haluatko käyttää Pro tai Free versiota
 Free versio vaatii rekisteröitymisen.
Ohjelman käyttöliittymä
 Päänäkymän ikkunat
 Scene, Hierarchy
 Game, Project
 Console, Inspector
 Projektissa käytettävät elementit:
 Assets
 GameObject
 Component
Scene ja Hierarchy
 Scene = Pelimaailman näyttämö, hiekkalaatikko
 Voit liikutella ja muutella GameObjecteja
 Hierarchy = Lista GameObjecteista
Game
 Peli-ikkuna
 Peliä pelataan tämän ikkunan alla
Aspect Ratio = Kuvasuhde
 16:9
 Yleisin, laajakuva
 1366x768, Full HD (1920x1080) => 120 * 16 : 120 * 9
 4:3
 1024 x 768 => 256 * 4 : 256 *3
 5:4
 1280x1024 => 256 * 5 : 256 * 4
 16:10
 1680×1050 => 105 * 6 : 105 * 10
Project
 Tiedostohakemisto projektin kaikille tiedostoille
 Tämän kautta hallitaan kaikkea ulkopuolista materiaalia: ääniä, kuvia, mallinnuksia
Inspector
 Asetusten säätö –ikkuna
 Kaikki asetukset tehdään tässä
Console
 Konsoli, johon tulee kaikki skriptien virheet, huomautukset ja muut ilmoitukset
 Hyödyllinen ainoastaan skriptien kanssa
 Unity ei suorita peliä jos virheitä tulee konsoliin
Assets
 ”Lisähyödyke” eli kaikki kuvat, mallinnukset, äänet, koodit
 Assets-valikosta voi luoda Unityn omia lisähyödykkeitä, jotka tallennetaan Assets
kansioon.
Gameobject
 Pelin asioiden perusyksikkö. Kaikki asia mikä on pelissä on gameobjecteja.
 = Peliesine
 Valikosta löytyy kaikki tarvittavat peliyksiköt pelinrakentamista varten,
poikkeuksena omat 3d mallit
Components
 Gameobjectin komponentteja
 Kaikki animaatiot, äänet, fysiikat ja skriptit kuuluvat tänne
 Näkyy Inspectorissa
Gameobject elementit
 Käydään läpi:
 Empty gameobject, empty child gameobject
 3D Objects: Cube, Sphere, Capsule, Cylinder, Plane, Quad, Terrain, Tree
 2D Objects: Sprite
 Light: Directional Light, Point Light, Spotlight
 UI: Button, Toggle, Panel, Image, Text
Empty gameobject
 Kohde jossa on vain sijainti ja oma nimi
 Käytetään paljon silloin kun halutaan gameobject, jossa on eri skriptejä esim.
pisteiden hallinnointiin
 Käytetään myös kun halutaan tehdä gameobjecteista ryhmiä
Cube, Sphere, Capsule, Cylinder, Plane,
Quad
 Unityn valmiita mallinnuksia, joista saa rakennettua perus palikoita kenttään
 Valmiiksi lisätty perus-fysiikka
Terrain, Tree
 Terrain on muovailtava kenttä 3D peleihin
 Kenttä on muokattavissa vain Unityssa
 Tree on puu elementti, jossa löytyy valmis logiikka lehdille ja tuulen vaikutus
lehtiin
Directional Light, Point Light, SpotLight
 Directional Light = Aurinko
 Point Light
 Valoa tietylle alueelle, ei vaikuta rotatio ollenkaan
 Spotlight
 Valaisee hyvin rajatun alueen
UI
 Elementtejä, jotka ”liimautuvat kameran linssiin”
 Käytetään esim valikkojen ja tilastojen esittämiseen pelin aikana
C# ohjelmointi: muuttuja
 Kenttä johon varastoidaan tietoa
 Kielen omat muuttujatyypit: bool, float, int, string
 C# kieli vaatii muuttujien alustamisessa kertomaan muuttujan tyypin
 Jos muuttujan tyypin edessä ei ole public sanaa, ei muuttuja näy UnityEditorin
Inspectorissa
 Muuttuja alustetaan käyttäen =-merkkiä
 Kielen omia muuttujatyyppiä lukuunottamatta muuttuja alustetaan esim.
 Vector3 suunta = new Vector3(0f, 1f, 2f); //x = 0, y = 1, z = 2
C# ohjelmointi: funktio
 Kokonaisuus, joka sisältää tietyn logiikkarakenteen ja se on toistettavissa
 Funktio voi palauttaa pyytäjälle arvon
 Funktiolle voi antaa muuttujia (parametrit)
 Saman nimisiä funktioita voi käyttää jos parametrien määrä ja parametrien tyypit
on eri
 Jokaisesta skriptistä löytyvät Start() ja Update() ovat funktioita
C# ohjelmointi: tyyli
 Heti aluksi skripteissä listataan kaikki käytettävät apukirjastot (näihin ei tarvi
koskea)
 Koodirivit päättyvät ;-merkkiin
 Skriptit kirjoitetaan public class [Skriptin_nimi] : MonoBehaviour { } kaarimerkkien
sisälle
 Kommentointi tapahtuu
 Vain yksi rivi: //-merkeillä
 Monta riviä: /* alkaa
päättyy */
C# ohjelmointi: ehdot
 If, else if, else
 Esim. if(ehto){ //tee jotain }
 Ehdot ovat kuin pieniä funktioita jotka kysyy pitääkö ehto paikkansa ja jos pitää
niin sitten luetaan kaarisulkujen sisäinen koodi
 Voi olla myös monta ehtoa:
 ehto1 && ehto2 == ehto1 ja ehto2 pitävät paikkansa
 Ehto1 || ehto2 == ehto1 pitää paikkansa tai ehto2 pitää paikkansa
 Else:n ei tule ()-sulkuja
C# ohjelmointi: taulukot
 Muuttujia jossa on useampi kenttä.
 Yleensä liitetään samat asiat taulukkoon
 Esim:
 Vector3[] suunnat = new Vector[2]; //taulukko jonka koko on 2 paikkaa
suunnat[0] = new Vector3( 1f,0f,0f); suunnat[1] = new Vector3(-1f,0f,0f);
C# ohjelmointi: Loopit
 Kun koodari on laiska, hän tekee loopin ettei tarvitsisi kirjoittaa samaa asiaa
montaa kertaa
 C#:ssa on kolmea eri tyyppiä: while, for ja foreach loopit
 Käytetään 99% taulukoiden läpikäyntiin: taulukon lukeminen tai muokkaaminen
C# while-loop
 While(ehto){ //tekee jotain}
 Toteuttaa kaarisulun sisäistä logiikkaa niin pitkään, että ehto ei enää täyty
 Vaarallinen, koska ohjelma kaatuu jos ehto ei koskaan täyty
 Unityn saa kaatumaan herkästi tämän kanssa
C# for-looppi
 For(int indeksi = 0; indeksi < 0; indeksi++) { //tee jotain}
 For-loopin ”parametreina” ekassa alustetaan muuttuja, toisessa testataan ehtoa
kuten while-loopissa ja kolmannessa kasvateaan ekan muuttujan arvoa (90%
tapauksista)
 Kätevä taulukoiden läpikäyntiin, koska for-loopissa alustetaan muuttuja jolla voi
helposti läpikäydä taulukkoa
C# foreach-loop
 Foreach(Vector3 suunta in suunnat) { //tee jotain}
 Luo muuttujan taulukon alkiosta
 Yksinkertainen tapa käydä järjestelmällisesti läpi alusta loppuun taulukkoa
 Ei pysty muokkaamaan tietoja, pelkästään lukemista varten

Weitere ähnliche Inhalte

Ähnlich wie Unity3d Perusteet

Johdatus ohjelmointiin
Johdatus ohjelmointiinJohdatus ohjelmointiin
Johdatus ohjelmointiinJukkaWallenius
 
AT1 - Windows ja internet -luentorunko
AT1 - Windows ja internet -luentorunkoAT1 - Windows ja internet -luentorunko
AT1 - Windows ja internet -luentorunkomijuraut
 
T 121 5300 (2008) User Interface Design 1 Final
T 121 5300 (2008) User Interface Design 1   FinalT 121 5300 (2008) User Interface Design 1   Final
T 121 5300 (2008) User Interface Design 1 Finalmniemi
 
Komentorivin perusteet
Komentorivin perusteetKomentorivin perusteet
Komentorivin perusteetTomi Toivio
 
Komentorivin perusteet
Komentorivin perusteetKomentorivin perusteet
Komentorivin perusteetTomi Toivio
 
Windows 7 - uudet ominaisuudet
Windows 7 - uudet ominaisuudetWindows 7 - uudet ominaisuudet
Windows 7 - uudet ominaisuudetVaihde 7
 
T-121.2100 (2009) Kayttoliittyman rakentaminen
T-121.2100 (2009) Kayttoliittyman rakentaminenT-121.2100 (2009) Kayttoliittyman rakentaminen
T-121.2100 (2009) Kayttoliittyman rakentaminenmniemi
 
Net ohjelmointi kertaus
Net ohjelmointi kertausNet ohjelmointi kertaus
Net ohjelmointi kertausTimo Tanila
 
Palvelujen ohjelmointi JavaScriptillä: Node.js ja TypeScript
Palvelujen ohjelmointi JavaScriptillä: Node.js ja TypeScriptPalvelujen ohjelmointi JavaScriptillä: Node.js ja TypeScript
Palvelujen ohjelmointi JavaScriptillä: Node.js ja TypeScriptSovelto
 
Store App -kehityksen aloittaminen
Store App -kehityksen aloittaminenStore App -kehityksen aloittaminen
Store App -kehityksen aloittaminenSovelto
 
Johdatus oliopohjaiseen ajatteluun
Johdatus oliopohjaiseen ajatteluunJohdatus oliopohjaiseen ajatteluun
Johdatus oliopohjaiseen ajatteluunPasi Kellokoski
 
Windows 7 Käyttöönottoprojekti
Windows 7 KäyttöönottoprojektiWindows 7 Käyttöönottoprojekti
Windows 7 KäyttöönottoprojektiVaihde 7
 
Mac läppäri tutuksi (Oskari Niitamo, Espoon Työväenopisto)
Mac läppäri tutuksi (Oskari Niitamo, Espoon Työväenopisto) Mac läppäri tutuksi (Oskari Niitamo, Espoon Työväenopisto)
Mac läppäri tutuksi (Oskari Niitamo, Espoon Työväenopisto) Oskari Niitamo
 

Ähnlich wie Unity3d Perusteet (20)

Blender
BlenderBlender
Blender
 
Johdatus ohjelmointiin
Johdatus ohjelmointiinJohdatus ohjelmointiin
Johdatus ohjelmointiin
 
AT1 - Windows ja internet -luentorunko
AT1 - Windows ja internet -luentorunkoAT1 - Windows ja internet -luentorunko
AT1 - Windows ja internet -luentorunko
 
T 121 5300 (2008) User Interface Design 1 Final
T 121 5300 (2008) User Interface Design 1   FinalT 121 5300 (2008) User Interface Design 1   Final
T 121 5300 (2008) User Interface Design 1 Final
 
Komentorivin perusteet
Komentorivin perusteetKomentorivin perusteet
Komentorivin perusteet
 
Komentorivin perusteet
Komentorivin perusteetKomentorivin perusteet
Komentorivin perusteet
 
Windows 7 - uudet ominaisuudet
Windows 7 - uudet ominaisuudetWindows 7 - uudet ominaisuudet
Windows 7 - uudet ominaisuudet
 
T-121.2100 (2009) Kayttoliittyman rakentaminen
T-121.2100 (2009) Kayttoliittyman rakentaminenT-121.2100 (2009) Kayttoliittyman rakentaminen
T-121.2100 (2009) Kayttoliittyman rakentaminen
 
Net ohjelmointi kertaus
Net ohjelmointi kertausNet ohjelmointi kertaus
Net ohjelmointi kertaus
 
Opinnäytetyö
OpinnäytetyöOpinnäytetyö
Opinnäytetyö
 
Ohjelma
OhjelmaOhjelma
Ohjelma
 
Palvelujen ohjelmointi JavaScriptillä: Node.js ja TypeScript
Palvelujen ohjelmointi JavaScriptillä: Node.js ja TypeScriptPalvelujen ohjelmointi JavaScriptillä: Node.js ja TypeScript
Palvelujen ohjelmointi JavaScriptillä: Node.js ja TypeScript
 
Store App -kehityksen aloittaminen
Store App -kehityksen aloittaminenStore App -kehityksen aloittaminen
Store App -kehityksen aloittaminen
 
Johdatus oliopohjaiseen ajatteluun
Johdatus oliopohjaiseen ajatteluunJohdatus oliopohjaiseen ajatteluun
Johdatus oliopohjaiseen ajatteluun
 
Ohjelma
OhjelmaOhjelma
Ohjelma
 
Gtranscode
GtranscodeGtranscode
Gtranscode
 
Windows 7 Käyttöönottoprojekti
Windows 7 KäyttöönottoprojektiWindows 7 Käyttöönottoprojekti
Windows 7 Käyttöönottoprojekti
 
Ffmpeg2theora
Ffmpeg2theoraFfmpeg2theora
Ffmpeg2theora
 
Mac läppäri tutuksi (Oskari Niitamo, Espoon Työväenopisto)
Mac läppäri tutuksi (Oskari Niitamo, Espoon Työväenopisto) Mac läppäri tutuksi (Oskari Niitamo, Espoon Työväenopisto)
Mac läppäri tutuksi (Oskari Niitamo, Espoon Työväenopisto)
 
Racket MOOC - jakso 3
Racket MOOC - jakso 3Racket MOOC - jakso 3
Racket MOOC - jakso 3
 

Unity3d Perusteet

  • 2. Opettaja  Joni Ahola  Työskentelee yrityksessä Juotos.  Juotos on yhden henkilön koodipaja. Juotos tekee nettisivuja, mobiiliappseja ja pelejä  RAMK valmistunut keväällä 2013 Ohjelmistotekniikan insinööriksi
  • 3. Sisältö  Miksi Unity3d?  Asennus ja projektin luonti  Ohjelman käyttöliittymä  Tyypilliset pelielementit  C# perusteet ja skriptien rakenne
  • 4. Miksi juuri Unity3d?  Pystyy tekee monelle alustalle:  iOS, Android, Windows Phone 8, BlackBerry 10  Windows, Mac, Linux, Nettiselaimet  PS3/4/Vita, Playstation Mobile, Xbox One/360, WiiU  Suosituin pelimoottori: 45% markkinaosuus. NASA, Microsoft, Square, Ubisoft käyttää  Wasteland 2, Temple Run 2  Voi käyttää myös ilmaiseksi  Ei pohjaudu mihinkään valmiiseen peliin
  • 5. Asennus ja ohjelman käynnistys  Lataa http://unity3d.com/unity/download tai tikulta  Ensimmäisellä kerralla kysyy haluatko käyttää Pro tai Free versiota  Free versio vaatii rekisteröitymisen.
  • 6. Ohjelman käyttöliittymä  Päänäkymän ikkunat  Scene, Hierarchy  Game, Project  Console, Inspector  Projektissa käytettävät elementit:  Assets  GameObject  Component
  • 7. Scene ja Hierarchy  Scene = Pelimaailman näyttämö, hiekkalaatikko  Voit liikutella ja muutella GameObjecteja  Hierarchy = Lista GameObjecteista
  • 8. Game  Peli-ikkuna  Peliä pelataan tämän ikkunan alla
  • 9. Aspect Ratio = Kuvasuhde  16:9  Yleisin, laajakuva  1366x768, Full HD (1920x1080) => 120 * 16 : 120 * 9  4:3  1024 x 768 => 256 * 4 : 256 *3  5:4  1280x1024 => 256 * 5 : 256 * 4  16:10  1680×1050 => 105 * 6 : 105 * 10
  • 10. Project  Tiedostohakemisto projektin kaikille tiedostoille  Tämän kautta hallitaan kaikkea ulkopuolista materiaalia: ääniä, kuvia, mallinnuksia
  • 11. Inspector  Asetusten säätö –ikkuna  Kaikki asetukset tehdään tässä
  • 12. Console  Konsoli, johon tulee kaikki skriptien virheet, huomautukset ja muut ilmoitukset  Hyödyllinen ainoastaan skriptien kanssa  Unity ei suorita peliä jos virheitä tulee konsoliin
  • 13. Assets  ”Lisähyödyke” eli kaikki kuvat, mallinnukset, äänet, koodit  Assets-valikosta voi luoda Unityn omia lisähyödykkeitä, jotka tallennetaan Assets kansioon.
  • 14. Gameobject  Pelin asioiden perusyksikkö. Kaikki asia mikä on pelissä on gameobjecteja.  = Peliesine  Valikosta löytyy kaikki tarvittavat peliyksiköt pelinrakentamista varten, poikkeuksena omat 3d mallit
  • 15. Components  Gameobjectin komponentteja  Kaikki animaatiot, äänet, fysiikat ja skriptit kuuluvat tänne  Näkyy Inspectorissa
  • 16. Gameobject elementit  Käydään läpi:  Empty gameobject, empty child gameobject  3D Objects: Cube, Sphere, Capsule, Cylinder, Plane, Quad, Terrain, Tree  2D Objects: Sprite  Light: Directional Light, Point Light, Spotlight  UI: Button, Toggle, Panel, Image, Text
  • 17. Empty gameobject  Kohde jossa on vain sijainti ja oma nimi  Käytetään paljon silloin kun halutaan gameobject, jossa on eri skriptejä esim. pisteiden hallinnointiin  Käytetään myös kun halutaan tehdä gameobjecteista ryhmiä
  • 18. Cube, Sphere, Capsule, Cylinder, Plane, Quad  Unityn valmiita mallinnuksia, joista saa rakennettua perus palikoita kenttään  Valmiiksi lisätty perus-fysiikka
  • 19. Terrain, Tree  Terrain on muovailtava kenttä 3D peleihin  Kenttä on muokattavissa vain Unityssa  Tree on puu elementti, jossa löytyy valmis logiikka lehdille ja tuulen vaikutus lehtiin
  • 20. Directional Light, Point Light, SpotLight  Directional Light = Aurinko  Point Light  Valoa tietylle alueelle, ei vaikuta rotatio ollenkaan  Spotlight  Valaisee hyvin rajatun alueen
  • 21. UI  Elementtejä, jotka ”liimautuvat kameran linssiin”  Käytetään esim valikkojen ja tilastojen esittämiseen pelin aikana
  • 22. C# ohjelmointi: muuttuja  Kenttä johon varastoidaan tietoa  Kielen omat muuttujatyypit: bool, float, int, string  C# kieli vaatii muuttujien alustamisessa kertomaan muuttujan tyypin  Jos muuttujan tyypin edessä ei ole public sanaa, ei muuttuja näy UnityEditorin Inspectorissa  Muuttuja alustetaan käyttäen =-merkkiä  Kielen omia muuttujatyyppiä lukuunottamatta muuttuja alustetaan esim.  Vector3 suunta = new Vector3(0f, 1f, 2f); //x = 0, y = 1, z = 2
  • 23. C# ohjelmointi: funktio  Kokonaisuus, joka sisältää tietyn logiikkarakenteen ja se on toistettavissa  Funktio voi palauttaa pyytäjälle arvon  Funktiolle voi antaa muuttujia (parametrit)  Saman nimisiä funktioita voi käyttää jos parametrien määrä ja parametrien tyypit on eri  Jokaisesta skriptistä löytyvät Start() ja Update() ovat funktioita
  • 24. C# ohjelmointi: tyyli  Heti aluksi skripteissä listataan kaikki käytettävät apukirjastot (näihin ei tarvi koskea)  Koodirivit päättyvät ;-merkkiin  Skriptit kirjoitetaan public class [Skriptin_nimi] : MonoBehaviour { } kaarimerkkien sisälle  Kommentointi tapahtuu  Vain yksi rivi: //-merkeillä  Monta riviä: /* alkaa päättyy */
  • 25. C# ohjelmointi: ehdot  If, else if, else  Esim. if(ehto){ //tee jotain }  Ehdot ovat kuin pieniä funktioita jotka kysyy pitääkö ehto paikkansa ja jos pitää niin sitten luetaan kaarisulkujen sisäinen koodi  Voi olla myös monta ehtoa:  ehto1 && ehto2 == ehto1 ja ehto2 pitävät paikkansa  Ehto1 || ehto2 == ehto1 pitää paikkansa tai ehto2 pitää paikkansa  Else:n ei tule ()-sulkuja
  • 26. C# ohjelmointi: taulukot  Muuttujia jossa on useampi kenttä.  Yleensä liitetään samat asiat taulukkoon  Esim:  Vector3[] suunnat = new Vector[2]; //taulukko jonka koko on 2 paikkaa suunnat[0] = new Vector3( 1f,0f,0f); suunnat[1] = new Vector3(-1f,0f,0f);
  • 27. C# ohjelmointi: Loopit  Kun koodari on laiska, hän tekee loopin ettei tarvitsisi kirjoittaa samaa asiaa montaa kertaa  C#:ssa on kolmea eri tyyppiä: while, for ja foreach loopit  Käytetään 99% taulukoiden läpikäyntiin: taulukon lukeminen tai muokkaaminen
  • 28. C# while-loop  While(ehto){ //tekee jotain}  Toteuttaa kaarisulun sisäistä logiikkaa niin pitkään, että ehto ei enää täyty  Vaarallinen, koska ohjelma kaatuu jos ehto ei koskaan täyty  Unityn saa kaatumaan herkästi tämän kanssa
  • 29. C# for-looppi  For(int indeksi = 0; indeksi < 0; indeksi++) { //tee jotain}  For-loopin ”parametreina” ekassa alustetaan muuttuja, toisessa testataan ehtoa kuten while-loopissa ja kolmannessa kasvateaan ekan muuttujan arvoa (90% tapauksista)  Kätevä taulukoiden läpikäyntiin, koska for-loopissa alustetaan muuttuja jolla voi helposti läpikäydä taulukkoa
  • 30. C# foreach-loop  Foreach(Vector3 suunta in suunnat) { //tee jotain}  Luo muuttujan taulukon alkiosta  Yksinkertainen tapa käydä järjestelmällisesti läpi alusta loppuun taulukkoa  Ei pysty muokkaamaan tietoja, pelkästään lukemista varten