Unity 3D Tutorial PART 2 v2

Post on 23-Jan-2016

95 Views

Category:

Documents

7 Downloads

Preview:

Click to see full reader

Transcript

PART 2

MEMBUAT GAME PIZZA RUSH

Di dalam Part 2 ini kita akan belajar bagaimana membuat game Pizza Rush. Pada bagian

ini, tools yang kita gunakan adalah Unity3D. Untuk memprogram game ini kita akan

menggunakan bahasa pemrograman C#. Tahapan pengerjaan pembuatan game ini

dibagi menjadi 3 yaitu, menyiapkan game object, menulis code, dan test the game.

Ada beberapa hal yang perlu diperhatikan dalam membuat game agar performansi

game bisa maksimal di semua device/console. Hal hal tersebut antara lain :

1. Texture

Dalam membuat game untuk Windows Phone 8, texture yang digunakan harus

berukuran maksimal 1024x1024. Jika lebih maka texture tidak akan muncul di

dalam game.

2. Draw Calls

Draw Calls adalah banyaknya proses yang dilakukan oleh device untuk

menampilkan semua object yang tampak di layar. Semakin banyak object dan

texture yang digunakan, maka draw calls akan semakin besar. Semakin kecil draw

calls maka performansi game akan semakin baik. Untuk platform Windows

Phone 8, usahakan jumlah draw calls maksimal 15 – 20 agar game yang kita buat

dapat berjalan maksimal di semua device Windows Phone 8.

3. Sound

Unity mendukung banyak format audio, namun untuk performansi yang

maksimal, format audio yang biasa digunakan adalah wav. Musik dalam game

biasanya di ulang terus menerus selama game itu dimainkan. Durasi musik yang

digunakan umumnya pendek, biasanya kurang dari 1 menit. File audio yang biasa

digunakan di dalam game untuk platform mobile biasanya sudah dikompresi

sehingga ukurannya kecil. Hal tersebut sangat berpengaruh dalam penggunaan

memori, semakin besar ukuran file audio, maka memori yang digunakan akan

semakin besar dan performansi game semakin turun.

Membuat Project Baru

1. Buatlah project baru. Pilih File New Project…

Maka akan muncul jendela seperti berikut.

Tentukan lokasi folder, uncheck semua checklist yang ada. Lalu tekan Create.

Mengimport Asset

1. Selanjutnya kita akan meng-import asset yang akan digunakan dalam game.

Buka folder tempat asset tersebut di simpan menggunakan explorer. Kemudian

Drag drop folder tersebut kedalam tab Asset di dalam unity.

Tunggu hingga proses selesai.

Membuat Preferb

Selanjutnya, kita akan membuat preferb. Preferb adalah GameObject yang bisa dipakai

ulang di dalam game. Untuk lebih lengkapnya, bisa di lihat di situs resmi Unity3D di link

berikut :

https://docs.unity3d.com/Documentation/Manual/Prefabs.html

Membuat Preferb Map

1. Buka Folder Object 3D di dalam tab Project, lalu drag drop object Map

Kedalam tab Heirarchy.

2. Buka folder Materials yang berada di dalam folder Object 3D. Kemudian

pada tab project, pilih Create Material. Kemudian beri nama Map

3. Seleksi material Map, kemudian di tab Inspector, pilih Select pada box

texture. Lalu pilih Texture-Map.

4. Drag & drop material Map yang tadi dibuat ke atas objek Map di dalam

Hierarchy.

5. Buatlah empty game object dengan cara pilih menu GameObject Create

Empty. Kemudian ganti nama empty game object tersebut menjadi

“MapGenerator”. Nantinya kita akan menambahkan script map generator

kedalam empty game object ini.

6. Buatlah object MapGenerator menjadi child dari object Map dengan cara

drag & drop object MapGenerator kedalam object Map.

7. Seleksi object MapGenerator, pada tab Inspector lalu ubah posisi nya

menjadi X=-196.85 , Y = 0 , Z = 0.

8. Kemudian pilih Tag Add Tag. Lalu isikan “Map”.

9. Setelah itu seleksi lagi object Map, kemudian pada jendela Inspector, ganti

tag nya menjadi Map.

10. Selanjutnya kita tambahkan Box Collider kedalam object Map. Seleksi object

Map, kemudian pada inspector pilih Add Component Physics Box

Collider.

11. Ubah lah propertis Box Collider menjadi

Center X= -98.42519,Y= 0, Z=0

Size X= 196.8504, Y=0.1, Z= 11.81102

Sehingga Box Collider berada tepat di jalan pada object Map.

12. Pada tab Project buat folder baru, beri nama Preferbs.

13. Drag & drop object Map dari Hierarchy kedalam folder Preferbs.

14. Selamat! Kamu telah berhasil membuat Preferb Map.

Membuat Preferb Obstacle_1

1. Buka folder Object 3D pada tab Project. Kemudian pilih object Obstacle_1

lalu drag & drop object tersebut ke dalam tab Hierarchy.

2. Seleksi object Obstacle_1 pada Hierarchy, kemudian tambahkan Box Collider

dengan cara pilih Add Component Physics Box Collider pada tab

Inspector.

3. Centang lah isTrigger yang berada di bawah Box Cillider

4. Buatlah Material pada folder Material pada tab Project. Beri nama

“Obstacle”.

5. Seleksi Material Obstacle lalu pada tab inspector pilih Select pada Box

Texture. Kemudian pilih Texture-Obstacle.

6. Drag & drop material Obstacle kedalam object Obstacle_1 yang berada di

tab Hierarchy.

7. Seleksi object Obstacle_1 kemudian pada tab inspector pilih Tag Add Tag..

Lalu masukkan tag baru dengan nama Obstacle.

8. Seleksi kembali object Obstacle_1 kemudian ganti tag nya menjadi Obstacle.

9. Kemudian drag & drop object Obstacle_1 kedalam folder preferb yang

berada di dalam tab Project.

10. Selamat! Kamu sudah berhasil membuat prefer Obstacle_1.

Membuat Preferb Obstacle_2

1. Buka folder Object 3D pada tab Project kemudian drag & drop object

Obstacle_2 dari tab Project kedalam tab Hierarchy.

2. Buka Folder Material yang berada di dalam folder Object 3D di tab Project.

Kemudian drag drop material Obstacle kedalam object Obstacle_2.

3. Seleksi object Obstacle_2 kemudian pada tab Inspector, ganti tag nya

menjadi Obstacle.

4. Masih dengan Obstacle_2 yang terseleksi, tambahkan Box Collider dengan

cara pilih Add Component Physics Box Collider pada tab inspector. Lalu

ubah propertisnya menjadi Center X=-1.76, Y=0.0571, Z=-5,96; Size X=4.72,

Y=0.1533, Z=3.937

5. Centang isTrigger yang berada di bawah Box Collider.

6. Drag & drop object Obstacle_2 dari tab Hierarchy kedalam folder Preferb

yang berada di dalam tab Project.

7. Selamat! Kamu telah berhasil membuat preferb Obstacle_2.

Membuat Preferb Coin

1. Buka folder Object 3D yang berada di dalam tab Project. Kemudian drag &

drop object Coin dari tab project ke dalam tab Hierarchy.

2. Seleksi Object Coin yang berada di dalam tab Hierarchy. Kemudian di tab

Inspector, pilih lah Tag Add Tag.. lalu tambahkan tag Coin.

3. Seleksi Object Coin kemudian ganti Tag nya menjadi coin.

4. Masih dengan Object Coin yang terseleksi, pada tab Inspector, tambahkan

Collider dengan memilih Add Component Physics Box Collider.

5. Centang isTrigger yang berada di dibawah Box Collider.

6. Buka lah folder Materials yang berada di dalam folder Object 3D pada tab

Project. Buatlah Material baru dengan memilih Create Material. Lalu beri

nama “Reward”.

7. Seleksi Material Reward yang tadi dibuat. Lalu pilih Select pada texture

kemudian pilih Texture-Reward.

8. Drag & drop material Reward ke dalam object Coin yang berada di Hierarchy.

9. Selanjutnya drag & drop object Coin yang ada di dalam Hierarchy kedalam

Folder Preferb.

10. Selamat! Kamu sudah berhasil membuat prefer Coin.

Membuat Preferb Magnet

1. Buka folder Object 3D kemudian drag & drop object Magnet dari tab Project

kedalam tab Hierarchy.

2. Seleksi object Magnet yang berada di dalam Hierarchy. Kemudian pada tab

Inspector pilih Tag Add Tag.. lalu buat tag baru dengan nama “Magnet”

3. Seleksi object Magnet lalu ganti Tag nya menjadi Magnet.

4. Masih dengan object Magnet yang terseleksi, tambahkan Box Collider

dengan cara pilih Add Component Physics Box Collider pada tab

Inspector.

5. Buka folder Materials yang berada di dalam folder Object 3D pada tab

Project. Kemudian drag & drop material Reward kedalam object Magnet.

6. Seleksi object Magnet yang ada di Hierarchy, kemudian drag & drop object

Magnet dari tab Hierarchy ke dalam folder Preferb yang ada di dalam tab

Project.

7. Selamat! Kamu sudah berhasil membuat prefer Magnet.

Membuat Preferb Fuel

1. Buka folder Object 3D kemudian drag & drop object Fuel dari tab Project

kedalam tab Hierarchy.

2. Seleksi object Fuel yang berada di dalam Hierarchy. Kemudian pada tab

Inspector pilih Tag Add Tag.. lalu buat tag baru dengan nama “Fuel”

3. Seleksi object Fuel lalu ganti Tag nya menjadi Fuel.

4. Masih dengan object Fuel yang terseleksi, tambahkan Box Collider dengan

cara pilih Add Component Physics Box Collider pada tab Inspector.

5. Buka folder Materials yang berada di dalam folder Object 3D pada tab

Project. Kemudian drag & drop material Reward kedalam object Fuel.

6. Seleksi object Fuel yang ada di Hierarchy, kemudian drag & drop object Fuel

dari tab Hierarchy ke dalam folder Preferb yang ada di dalam tab Project.

7. Selamat! Kamu sudah berhasil membuat prefer Fuel.

Membuat Preferb PizzaBoy

1. Seleksi object PizzaBoy yang berada di dalam folder Object 3D. Kemudian

pada tab Inspector, pilih Tab Model ubah Scale Factor nya menjadi 0.013,

kemudian tekan Apply.

2. Kemudial pilih Tab Rig lalu ubah Animation Type menjadi Legacy, kemudian

tekan Apply.

3. Setelah itu buka tab Animation. Pilih Clip “Take 001” ubah propertisnya

menjadi Nama = “Motor Belok Kiri”; Start = 0; End = 20; Wrap Mode =

“Once” kemudian tekan Apply.

4. Kemudian tekan tanda +. Kemudian ganti

Nama = “Motor Belok Kanan” ; Start = 20 ; End = 40; Wrap Mode = “Once”

Kemudian tekan Apply.

5. Ulangi cara pada langkah ke 4 untuk menambahkan animasi dengan

konfigurasi seperti dibawah ini.

Nama Animasi Start End Wrap Mode

Motor Belok Kiri 0 20 Once

Motor Belok Kanan 20 40 Once

Motor Slide 40 50 Clamp Forever

Motor Lurus 60 80 Ping Pong

Motor Loncat 80 100 Once

Lari 120 159 Loop

Belok Kiri 190 210 Once

Belok Kanan 210 230 Once

Slide 240 250 Clamp Forever

Mati 270 280 Clamp Forever

Loncat 170 190 Once

6. Kemudian drag & drop object PizzaBoy dari tab project kedalam Hierarchy.

7. Seleksi object PizzaBoy pada Hierarchy kemudian tambahkan Rigidbody pada

object PizzaBoy dengan cara memilih AddComponent Physics

Rigidbody pada tab inspector. Kemudian ubah konfigurasi rigidbody menjadi:

Mass = 80, Freeze Rotation X = true, Y=true, Z=true.

8. Masih dengan object PizzaBoy yang terseleksi. Tambahkan Capsule Collider.

Dengan cara memilih Add Component Physics Capsule Collider pada

tab inspector.

9. Kemudian ubah konfigurasi Capsule Collider menjadi seperti berikut.

Center X=0, Y=0.63, Z=0; Raduis = 0.12; Height = 1.3

10. Buka lah folder Materials yang berada di dalam folder Object 3D pada tab

project kemudian buatlah material baru di dalam folder tersebut. Seleksi

folder, lalu pilih Create Material. Lalu beri nama PizzaBoy.

11. Seleksi Material PizzaBoy, lalu pada tab inspector Select Texture kemudian

pilih Texture-PizzaBoy.

12. Expand Object PizzaBoy yang berada di dalam Hierarchy, drag & drop

material PizzaBoy kedalam object PizzaBoy di dalam Hierarchy.

13. Drag & Drop pula Material PizzaBoy kedalam object Pizza-Kardus dan Helm

yang berada di dalam Tab Scene.

14. Selanjutnya seleksi folder Materials yang berada did dalam folder object lalu

buatlah material baru dan beri nama “PizzaScooter”.

15. Kemudian seleksi material PizzaScooter yang tadi dibuat. Didalam tab

inspector pilih Select Texture lalu pilih Texture-PizzaScooter.

16. Selanjutnya drag & drop material Pizza Scooter yang tadi dibuat ke dalam

object scooter yang berada di dalam tab Scene.

17. Seleksi Object Pizzaboy kemudian ubah tag PizzaBoy menjadi Player.

18. Selanjutnya kita akan membuat object PizzaBoy menjadi prefer. Drag & drop

object PizzaBoy yang berada di dalam tab Hierarchy kedalam folder Preferbs

yang berada di dalam tab Project.

19. Selamat! Kamu sudah berhasil membuat Preferb PizzaBoy.

Sebelum melanjutkan ke tahap berikutnya, Hapus seluruh object yang berada di

Hierarcy. Dengan cara menyeleksi semua object kemudian tekan delete pada keyboard.

Tekan Delete

(pada keyboard)

Membuat Preferb Sound

1. Buka folder Sound, lalu seleksi sound Coin. Kemudian uncek 3D Sound pada

tab inspector, lalu pilih Apply.

2. Kemudian drag & drop sound Coin keadalam Hierarchy lalu ganti nama nya

menjadi “Sound_Coin”.

3. Kemudian drag & drop object Sound_Coin dari Hierarchy ke dalam Folder

Preferb.

4. Ulangi 3 Langkah diatas untuk object suara yang lainnya, tambahkan

“Sound_” untuk namanya.

5. Selamat! Kamu sudah berhasil membuat preferb Sounds.

Sebelum melanjutkan ke tahap berikutnya, Hapus seluruh object yang berada di

Hierarcy. Dengan cara menyeleksi semua object kemudian tekan delete pada keyboard.

Tekan Delete

(pada keyboard)

Membuat Preferb Rangkaian_Obstacle

Dalam game PizzaRush ini, obstacle yang akan di lalui oleh pemain adalah

rangkaian obstacle yang sudah kita rangkai. Kita dapat membuat beberapa

rangkaian dan memunculkannya secara random pada saat game dimainkan.

Ikutilah langkah langkah berikut untuk membuat rangkaian obstacle, atau kamu

bisa mengkreasikan rangkaian obstacle sesuai dengan keinginan kamu.

Hal yang harus diperhatikan adalah rangkaian obstacle ini merupakan sebuah

Empty Game Object yang mempunyai child berupa preferb obstacle yang telah

kita buat diatas dan obstacle generator. Ikuti langkah berikut untuk membuat

rangkaian obstacle :

1. Drag & drop preferb Map dari Folder Preferb.

2. Buatlah Empty Game Object dengan cara memilih GameObject Create

Empty pada menu bar. Lalu beri nama Rangkaian_Obstacle_1.

3. Setelah itu reset object Rangkaian_Obstacle_1 dengan cara seleksi object

Rangkaian_Obstacle_1 kemudian pada inspector pilih lalu tekan Reset.

4. Kemudian drag & drop Obstacle_1 dari tab project kedalam

Rangkaian_Obstacle_1. Sehingga preferb Obstacle_1 menjadi child dari

object Rangkaian_Obstacle_1.

5. Selanjutnya drag & drop Obstacle_2 dari tab project kedalam

Rangkaian_Obstacle_1 (Rangkaian_Obstacle_1). Sehingga preferb

Obstacle_2 menjadi child dari object Rangkaian_Obstacle_1.

6. Double-click pada object Rangkaian_Obstacle_1 agar camera pada scene

terpusat pada object Rangkaian_Obstacle_1.

7. Pilih yang berada di bawah menubar, kemudian atur posisi Obstacle_1

dan Obstacle_2 dengan cara menyeleksi object yang akan di geser kemudian

menggesernya dengan menekan panah yang berada di object yang

terseleksi. Hingga seperti gambar di bawah ini (atau sesuai kreasi kamu).

Pastikan yang anda geser adalah object Obstacle_1 dan Obstacle_2. Pastikan

object Rangkaian_Obstacle_1 tetap berada di posisi 0,0,0.

8. Anda dapat menduplikasi object dengan cara menyeleski object yang akan

diduplikasi pada tab Hierarchy, kemudian tekan Ctrl+D atau dengan cara

klik-kanan pada object kemudian pilih duplicate.

Duplikasi object Obstacle_1 kemudian pindahkan seperti gambar berikut

(atau sesuai kreasi kamu).

9. Kamu juga dapat mengubah ukuran obstacle, dengancara menyeleksi

obstacle yang akan diubah ukurannya, kemudian ganti scale pada tab

inspector.

Lakukan duplikasi untuk object Obstacle_2 di dalam Hierarchy.

Lalu ubah scale-nya di dalam inspector menjadi X=-1, Y=1, Z=1.

10. Selanjutnya Geser object obstacle_2 yang tadi di ubah scalenya, menjadi

seperti gambar dibawah ini.

11. Kemudian kamu bisa mengkreasikannya lagi sesuain dengan keinginan

kamu. Yang harus diperhatikan adalah berikan jalur yang masuk akal agar player

dapat melewati rintangannya dan perhatikan agar semua object obstacle berada di

dalam object Rangkaian_Obstacle_1.

12. Setelah kamu puas dengan rangkaian obstacle yang kamu buat, langkah

selanjutnya adalah membuat ObstacleGenerator yang merupakan sebuah

Empty Game Object.

Buatlah Empty Game Object dengan cara pilih GameObject Create

Empty pada menu bar. Lalu ganti namanya menjadi “ObstacleGenerator”.

Kemudian jadikan child dari object Rangkaian_Obstacle_1 dengan cara drag

& drop ObstacleGenerator kedalam Rangkaian_Obstacle_1.

13. Selanjutnya seleksi ObstacleGenerator lalu pada tab Inspector, pilih lalu

pilih Reset. Kemudian pindahkan posisi ObstacleGenerator ke ujung dari

rangkaian obstacle. ObstacleGenerator akan menjadi tempat keluarnya

obstacle selanjutnya sehingga posisinya harus pas.

Pastikan posisi Y dan Z dari ObstacleGenerator samadengan 0.

14. Langkah Selanjutnya adalah menjadikan Rangkaian_Obstacle_1 sebagai

preferb dengan cara drag & drop object Rangkaian_Obstacle_1 dari

Hierarchy kedalam folder Preferb.

15. Selamat! Kamu telah berhasil membuat object Rangkaian_Obstacle_1.

Kamu dapat membuat rangkaian obstacle yang lain sebanyak apapun yang

kamu mau.

Menyiapkan Scene

1. Pilih File New Scene biarkan scene sebelumnya dihapus dan tidak usah di

save.

2. Drag & drop object Map dari folder Preferbs ke dalam Hierarchy. Pastikan Posisi

map berada di 0,0,0.

3. Selanjutnya drag & drop object PizzaBoy dari Hierarchy ke dalam Hierarchy.

Lalu ubah posisi PizzaBoy menjadi seperti berikut.

4. Expand object PizzaBoy di dalam Hierarchy, kemudian seleksi object Pizza-Box-

Kardus lalu hapus object tersebut dengan menekan Delete pada keyboard.

Tekan Delete

5. Seleksi object PizzaBoy kemudian pada inspector, pilih Apply.

6. Seleksi object Main Camera kemudian atur posisi dan rotasi Main Camera pada

tab Inspector menjadi seperti dibawah ini.

7. Kemudian pada menu bar, pilih GameObject Create Other Directional

Light.

8. Seleksi object Directional light kemudian pada tab Inspector, ganti

pengaturannya menjadi seperti dibawah ini.

9. Pada tab project, buatlah folder baru, berinama Scenes.

10. Save scene dengan cara memili File Save Scene dan beri nama MainGame

simpan dalam folder Scenes.

11. Selamat! Sekarang scene sudah siap.

Membuat Code

Pembuatan Code dalam Unity 3D dilakukan secara manual. Bahasa pemrograman yang

bisa di pakai adalah C#, JavaScript, dan Boo. Sedangkan, bahasa pemrograman yang

akan kita gunakan untuk membuat game ini adalah C#.

Membuat Script PlayerManager.cs

Script PlayerManager.cs akan mengatur pergerakan player, pergerakan kamera,

perhitungan score, dll.

1. Pertama buatlah folder Scripts.

2. Kemudian buka folder Scripts, lalu buatlah C# Scripts dan beri nama

“PlayerManager”.

3. Lalu drag & drop PlayerManager kedalam object PizzaBoy.

Dengan begitu PlayerManager.cs akan mengontrol PizzaBo.

4. Double-click PlayManager.cs kemudian tuliskan script berikut.

4.1 PizzaBoy Bergerak

public float kecepatanPlayer;

<!-->

void PergerakanPlayer(){ //step 1 membuat pizzaboy bergerak rigidbody.velocity = new Vector3 (-kecepatanPlayer, rigidbody.velocity.y, rigidbody.velocity.z); }

4.2 Kamera Bergerak

public float jarakKamera;

<!-->

void Start () { mainCamera=GameObject.Find("Main Camera"); }

void PergerakanKamera(){ mainCamera.transform.position = new Vector3(transform.position.x+jarakKamera, mainCamera.transform.position.y, mainCamera.transform.position.z); }

Membuat Script MapObstacleGenerator.cs

1. Map Generator

Untuk membuat map baru pertama tentukan terlebih dahulu jarak antara ujung map

dan objeck Pizza Boy, akan berada pada rentang jarak berapa ketika map baru akan

dibuat. Buat Script baru (C#) pada folder Scripts kemudian beri nama

“MapObstacleGenerator”, lalu drag and drop ke dalam Map Generator di dalam

Hirarcy. Tambahkan kode berikut terlebih dahulu:

//membuat variable player untuk menampung GameObject public GameObject player; // Use this for initialization void Start () { //Assgining Game Object PizzaBoy ke variable player player = GameObject.Find ("PizzaBoy"); } // Update is called once per frame void Update () { //print(player.transform.position.x); print(transform.position.x);

//step 3 tentukan jarak antara Map dan Pizza boy sebagai trigger clone Map print(player.transform.position.x-transform.position.x); }

Setelah didapatkan titik untuk Jarak Spawn lalu ubah method Update() menjadi seperti

kode berikut ini:

//membuat variable player untuk menampung GameObject public GameObject player; public float jarakSpawn; public GameObject[] objectToGenerate; private GameObject objectHasilGenerate;

<!-->

//print(player.transform.position.x); //print(transform.position.x); //step 3 tentukan jarak antara Map dan Pizza boy sebagai trigger clone Map //print(player.transform.position.x-transform.position.x); //step 4 jika jarak player(pizzaboy) dan map kurang dari jarakSpawn Clone map if(player.transform.position.x-transform.position.x < jarakSpawn){ //Step 5.1 mengecek hasil generate Map agar tidak terjadi redundant generate map if(!objectHasilGenerate){ //step 5 menggunakan fungsi Instantiate untuk clone Map dan didaftarkan sebagai variable GameObject objectHasilGenerate objectHasilGenerate = Instantiate(objectToGenerate[Random.Range(0,objectToGenerate.Length)],transform.position,Quaternion.identity) as GameObject; } } //step 6 destory Game Object Map jika sudah tidak digunakan if(player.transform.position.x-transform.position.x<-50){ Destroy(transform.parent.gameObject); }

Pada Inspector Map Generator isikan jarak Spawn= 50 dan pada variable Object To

Generate isikan Size= 1 lalu pilih Element 0=Map.

1.1 Mengatur posisi dan pergerakan player Pizza Boy Beralih kedalam Script PlayerManager tambahkan kode berikut pada method PergerakanPlayer() //step 8 membuat tipe data enum untuk posisi player public enum Posisi {

kiri, tengah, kanan } //step 9 membuat variabel playerPosisi untuk enum public Posisi playerPosisi;

public float posisiZPlayer; private float targetPosisiZPlayer;

<!--> //step 7 merubah posisi player (Z Position) transform.position = new Vector3(transform.position.x, transform.position.y, posisiZPlayer);

//step 10 kondisi input untuk posisi Z Player, menerima input dari method PlayerGeser if(playerPosisi == Posisi.kiri){ targetPosisiZPlayer = -1.5f; } if(playerPosisi == Posisi.kanan){ targetPosisiZPlayer = 1.5f; } if(playerPosisi == Posisi.tengah){ targetPosisiZPlayer = 0; } //Step 11 memberikan input ke variable posisiZPlayer dari input targetPosisiZPlayer //Time: adalah waktu yang dimilki unity sendiri ketika running program posisiZPlayer =

Mathf.MoveTowards(posisiZPlayer,targetPosisiZPlayer,6 * Time.deltaTime);

Buat method PlayerGeser() kemudian tambahkan koder berikut ini: void PlayerGeser(string input){ if(input=="kiri"){ if(playerPosisi == Posisi.kiri){ playerPosisi = Posisi.kiri; }else if(playerPosisi == Posisi.kanan){ playerPosisi = Posisi.tengah; }else if(playerPosisi == Posisi.tengah){ playerPosisi = Posisi.kiri; } }else if(input=="kanan"){ if(playerPosisi == Posisi.kiri){ playerPosisi = Posisi.tengah; }else if(playerPosisi == Posisi.kanan){ playerPosisi = Posisi.kanan; }else if(playerPosisi == Posisi.tengah){ playerPosisi = Posisi.kanan; } } }

Buat method InputKeyboard() lalu tambahkan kode berikut ini:

//step 12 method untuk integrasi dengan keyboard void InputKeyboard(){ if(Input.GetKeyDown(KeyCode.LeftArrow)){ PlayerGeser ("kiri"); //step 17 menambahkan Animasi animation.Play("Motor Belok Kiri"); } else if(Input.GetKeyDown(KeyCode.RightArrow)){ PlayerGeser ("kanan"); animation.Play("Motor Belok Kanan"); } }

Jangan lupa tambahkan method InputKeyboard() di dalam method Update(), lalu klik play pastikan pergerakan player sudah sesuai dengan input keyboard. 1.2 Object Pizza Boy Loncat Tambahkan kode berikut ini pada PlayerGeser(): public float tinggiLoncat; //variable untuk mengecek posisi udara PizzaBoy, default true public bool diTanah; <!--> //step 13 Menambahkan fungsi loncat pada object PizzaBoy else if(input=="loncat"){ if(diTanah){ rigidbody.velocity = new Vector3(rigidbody.velocity.x,tinggiLoncat,rigidbody.velocity.z); diTanah = false; } }

Tambahkan kode berikut pada method InputKeyboard() else if(Input.GetKeyDown(KeyCode.UpArrow)){ PlayerGeser("loncat"); animation.Play("Motor Loncat"); }

Untuk cek apakah object Pizza Boy sudah menyentuh tanah atau belum tambahkan kode berikut ini: //step 15 OnCollisionEnter fungsi bawaan UNITY untuk dipanggil setelah rigidbody/collider menyentuh rigidbody/collider lain void OnCollisionEnter(Collision other){ if(other.transform.tag == "Map"){ diTanah = true; } }

Klik “Play” pastikan object Pizza Boy sudah dapat melompat secara sesuai. 1.3 Membuat Scoring Masih didalam Script PlayerManager tambahkan Method berikut ini: //variable dengan type GUIText untuk scoreText (step 16) public float score; public float multipler; public GUIText scoreText; <!--> //Step 16 membuat Scoring //Scoring model 1 /*void OnGUI(){ score += multipler * Time.deltaTime; GUI.Label (new Rect (Screen.width * 0.1f, Screen.height * 0.1f, 600, 100),score.ToString("F0")); }*/ //Scoring model 2 //1. membuat Component GUIText di Scene //2. Tambahkan jenis font //3. embed GUIText Score ke prefeb PizzaBoy void Scoring(){ score += multipler * Time.deltaTime; scoreText.text = score.ToString("F0"); }

Jangan lupa tambahkan method Scoring () pada method update().

1.4 Menambahkan Efek pantulan (Bounce).

Pada folder Assets “klik kanan > Create > Physic Material” lalu ketikan bounce, isikan

nilai bounciness=0.5. Kembali ke Object Pizza Boy, pada Capsule Collider pilih “Material

> Bounce”.

Berikut ini adalah kode keseluruhan dari Script PlayerManager.cs dan

MapObstaclegenerator.cs:

PlayerManager.cs

using UnityEngine; using System.Collections; public class PlayerManager : MonoBehaviour {

public float kecepatanPlayer; //variable kamera dibuat agar posisi kamera di belakang Object Pizza Boy (tidak FPS) public float jarakKamera; public GameObject mainCamera; public float posisiZPlayer; private float targetPosisiZPlayer; public float tinggiLoncat; public float score; public float multipler; //variable dengan type GUIText untuk scoreText (step 16) public GUIText scoreText; //step 8 membuat tipe data enum untuk posisi player public enum Posisi { kiri, tengah, kanan } //variable untuk mengecek posisi udara PizzaBoy, default true public bool diTanah; //step 9 membuat variabel playerPosisi untuk enum public Posisi playerPosisi; // Use this for initialization void Start() { mainCamera = GameObject.Find("Main Camera"); } // Update is called once per frame void Update() { PergerakanPlayer(); PergerakanKamera(); InputKeyboard(); Scoring(); } void PergerakanPlayer() { //step 1 membuat pizzaboy bergerak rigidbody.velocity = new Vector3(-kecepatanPlayer, rigidbody.velocity.y, rigidbody.velocity.z); //step 7 merubah posisi player (Z Position) transform.position = new Vector3(transform.position.x, transform.position.y, posisiZPlayer); //step 10 kondisi input untuk posisi Z Player, menerima input dari method PlayerGeser if (playerPosisi == Posisi.kiri) { targetPosisiZPlayer = -1.5f;

} if (playerPosisi == Posisi.kanan) { targetPosisiZPlayer = 1.5f; } if (playerPosisi == Posisi.tengah) { targetPosisiZPlayer = 0; } //Step 11 memberikan input ke variable posisiZPlayer dari input targetPosisiZPlayer //Time: adalah waktu yang dimilki unity sendiri ketika running program posisiZPlayer = Mathf.MoveTowards(posisiZPlayer, targetPosisiZPlayer, 6 * Time.deltaTime); } void PlayerGeser(string input) { if (input == "kiri") { if (playerPosisi == Posisi.kiri) { playerPosisi = Posisi.kiri; } else if (playerPosisi == Posisi.kanan) { playerPosisi = Posisi.tengah; } else if (playerPosisi == Posisi.tengah) { playerPosisi = Posisi.kiri; } } else if (input == "kanan") { if (playerPosisi == Posisi.kiri) { playerPosisi = Posisi.tengah; } else if (playerPosisi == Posisi.kanan) { playerPosisi = Posisi.kanan; } else if (playerPosisi == Posisi.tengah) { playerPosisi = Posisi.kanan; } } //step 13 Menambahkan fungsi loncat pada object PizzaBoy else if (input == "loncat") { if (diTanah) { rigidbody.velocity = new Vector3(rigidbody.velocity.x, tinggiLoncat,

rigidbody.velocity.z); diTanah = false; //step 14 menambahkan components Capsule Collider dengan material bounce pada Object PizzaBoy } } } //step 12 method untuk integrasi dengan keyboard void InputKeyboard() { if (Input.GetKeyDown(KeyCode.LeftArrow)) { PlayerGeser("kiri"); //step 17 menambahkan Animasi animation.Play("Motor Belok Kiri"); } else if (Input.GetKeyDown(KeyCode.RightArrow)) { PlayerGeser("kanan"); animation.Play("Motor Belok Kanan"); } else if (Input.GetKeyDown(KeyCode.UpArrow)) { PlayerGeser("loncat"); animation.Play("Motor Loncat"); } } //step 15 OnCollisionEnter fungsi bawaan UNITY untuk dipanggil setelah rigidbody/collider menyentuh rigidbody/collider lain void OnCollisionEnter(Collision other) { if (other.transform.tag == "Map") { diTanah = true; } } void PergerakanKamera() { //step 2 membuat kamera bergerak mainCamera.transform.position = new Vector3(transform.position.x + jarakKamera, mainCamera.transform.position.y, mainCamera.transform.position.z); } //Step 16 membuat Scoring //Scoring model 1 /*void OnGUI(){

score += multipler * Time.deltaTime; GUI.Label (new Rect (Screen.width * 0.1f, Screen.height * 0.1f, 600, 100),score.ToString("F0")); }*/ //Scoring model 2 //1. membuat Component GUIText di Scene //2. Tambahkan jenis font //3. embed GUIText Score ke prefeb PizzaBoy void Scoring() { score += multipler * Time.deltaTime; scoreText.text = score.ToString("F0"); } }

MapObstacleGenerator.cs

using UnityEngine; using System.Collections; public class MapObstacleGenerator : MonoBehaviour { //membuat variable player untuk menampung GameObject public GameObject player; public float jarakSpawn; public GameObject[] objectToGenerate; private GameObject objectHasilGenerate; // Use this for initialization void Start() { //Assgining Game Object PizzaBoy ke variable player player = GameObject.Find("PizzaBoy"); } // Update is called once per frame void Update() { //print(player.transform.position.x); //print(transform.position.x); //step 3 tentukan jarak antara Map dan Pizza boy sebagai trigger clone Map //print(player.transform.position.x-transform.position.x); //step 4 jika jarak player(pizzaboy) dan map kurang dari jarakSpawn Clone map if (player.transform.position.x - transform.position.x < jarakSpawn) { //Step 5.1 mengecek hasil generate Map agar tidak terjadi redundant generate map if (!objectHasilGenerate)

{ //step 5 menggunakan fungsi Instantiate untuk clone Map dan didaftarkan sebagai variable GameObject objectHasilGenerate objectHasilGenerate = Instantiate(objectToGenerate[Random.Range(0, objectToGenerate.Length)], transform.position, Quaternion.identity) as GameObject; } } //step 6 destory Game Object Map jika sudah tidak digunakan if (player.transform.position.x - transform.position.x < -50) { Destroy(transform.parent.gameObject); } } }

Menambahkan backsound game

Pada Hirarcy Project klik “Game Object > Create Empty”, ubah namanya menjadi

“Backsound”. Pada Object BackSound yang terseleksi pilih “Add Component >

Audio > Audio Source”, selanjutnya pilih Audio Clip “Musik_Game”

Menambahkan sound motor loncat

Pada Script PlayerManager tambahkan kode berikut ini:

public AudioClip[] audioClip; <!--> void PlaySound(int clip){

audio.clip = audioClip[clip]; audio.Play();

}

Pada Object Pizza Boy pilih “Add Component > Audio Source”, lalu masih pada Object

Pizza Boy pada Player Manager Script pilih Audio Clip “Motor Loncat”.

1. Nb : Kamu dapat menggunakan preferb CoinGenerator dari dalam folder

Preferbs kedalam Rangkaian Obstacle, sehingga kamu dapat membuat koin

yang berjajar melengkung atau lurus dengan cepat dan rapih.

Kamu sudah berhasil membuat game Pizza Rush. Untuk membuat game kamu lebih

medarik dan menantang, buatlah beberapa rangkaian obstacle dengan tingkat

kesulitan yang lebih sulit. Jangan lupa untuk menambahkan CoinGenerator dan

Magnet agar game kamu menjadi lebih menarik.

top related