Oppitunti 17 - Vastustajat ja prefabit

Vastustajat luodaan käyttäen niin sanottua Animation overridea eli animaation ylikirjoittamista. Animation override tarkoittaa sitä samaa animation controlleria voidaan käyttää ohjaamaan paria eri hahmoa. Toisin sanoen peliin tulee kaksi vastustajaa, jotka toimivat animaatioiden puolesta samalla tavalla eli ne kävelevät ja hyökkäävät. 

 

Tehtävä 1 - Vastustaja

 

1. Avaa viime tunnilla tekemäsi Unity-projekti

2. Player peliobjekti on nyt prefabina, joten voit poistaa sen Hierarcystä. Valitse Player peliobjekti valikosta ja paina hiiren oikeaa näppäintä. Valitse Delete.

3. Luo uusi peliobjekti valitsemalla yläpalkista Game Object -> Create Empty

4. Anna peliobjektille nimeksi Enemy1

 

Tehtävä 2 - Animaatio vastustajalle

 

1. Valitse shift-napin kanssa paidattomat zombiet ja raahaa ne Enemy1-peliobjektiin

2. Tallenna animaatio Animation kansioon ja anna animaatiolle nimeksi Enemy1Idle

3. Valitse shiftin kanssa hyökkäävän zombien spritet ja raahaa ne Enemy1 peliobjektiin

4. Tallenna animaatio Animation kansioon ja anna animaatiolle nimeksi Enemy1Attack

5. Klikkaa Play Unityn yläreunasta ja näet ruudulla hytkyvän zombien

6. Lisää Enemy1 peliobjektiin Rigidbody 2D valitsemalla Add Component -> Physics 2D -> Rigidbody 2D

7. Lisää Enemy1 peliobjektiin Box Collider 2D valitsemalla Add Component -> Physics 2D - Box Collider 2D

7. Valitse Rigidbody 2D:stä Body Typeksi Kinematic

8. Valitse Inspector ikkunan ylälaidasta tagiksi Enemy ja layeriksi Blocking Layer

9. Valitse Sprite Renderer kohdasta Sortin Layeriksi Units

10. Raahaa Enemy1 peliobjekti Prefabs-kansioon

Tehtävä 3 - Toinen vastustaja

 

Käytämme ensimmäisen vastustajan pohjaa siihen, että luomme toisen vastustajan.

 

1. Nyt kun prefab on tallessa voimme nimetä Enemy1 peliobjektin uudelleen antamalla sille nimeksi Enemy2

2. Siirrä tuttuun tapaan idle spritet shiftiä käyttäen ja raahaamalla peliobjektiin

3. Tallenna animaatio Animation kansioon ja anna animaatiolle nimeksi Enemy2Idle

4. Raahaa hyökkäävät spritet Enemy2 peliobjektiin

5. Tallenna animaatio Animation kansioon ja anna animaatiolle nimeksi Enemy2Attack

 

Tehtävä 4 - Animation controller

 

1. Avaa Animation kansio.

2. Huomaa, että Unity on luonut sinne Enemy1 nimisen controllerin, joka sisältää molempien vastustajien animaatiot

3. Siirrä Enemy1.controller Animation controller kansioon

4. Klikkaa Enemy1.controller auki

5. Valitse controllerista Enemy2Idle ja Enemy2Attack käyttäen shift nappia ja hiirtä

6. Klikkaa hiiren oikeaa nappia Enemy2Idlen tai Enemy2Attackin kohdalla
7. Valitse valikosta Delete poistaaksesi kyseiset objektit

8. Unity vielä kysyy, että haluatko varmasti tuhota Enemy2Idlen ja Enemy2Attackin. Vastaa Delete.

 

Tehtävä 5 - Animation override

 

 

Animator, jossa Enemy1.controller on auki esittää erilaisia pelitilanteita. Tällä hetkellä ainoa tilanne on se, kun peli käynnistyy ja pelissämme pyörii animoitu zombie. Meillä on kuitenkin pelissä kaksi zombieta, mutta ne reagoivat pelin tapahtumiin samoilla tavoilla. Tämän vuoksi voimme käyttää Animator Override Controlleria ohjaamaan kahta hahmoa.

 

1. Valitse Project tekstin alla olevasta plussasta valikko auki ja sieltä Animator Override Controller

2. Anna Animator Override Controllerin nimeksi Enemy2

3. Klikkaa Enemy2.controller auki huomataksesi, että sen Inspector-ikkunassa lukee Controller ja none

4. Raahaa Enemy1.controller kohtaan, jossa lukee none

5. Raahaa Enemy2Attack kohtaan, jossa lukee Enemy1Attack

6. Raahaa Enemy2Idle kohtaan, jossa lukee Enemy1Idle

7. Klikkaa Enemy2 peliobjekti auki ja raahaa Enemy2.overRideController Inspector ikkunan Animator kohtaan, jossa lukee Enemy1

8. Klikkaa Play Unityn ylälaidasta ja sinun pitäisi nähdä takki päällä hytkyvän zombien

9. Raahaa Enemy2 peliobjekti Prefabs kansioon ja valitse Orginal Prefab

10. Kun prefab on luotu, voit tuhota Enemy2 peliobjektin

 

Tehtävä 6 - Scenen tallentaminen

 

1. Valitse yläpalkista File -> Save as...

2. Anna scenen nimeksi Main

3. Tallenna scene Assets kansion alla olevaan Scenes nimiseen kansioon

4. Valitse yläpalkista File -> Save Project

 

Nyt on pelaajasta ja vastustajista prefabit tehty voimme siirtyä seuraavalla tunnilla tekemään pelilautaa.

Suomen Tiedekoulu Oy