Top Banner
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.
56

Unity 3D Tutorial PART 2 v2

Jan 23, 2016

Download

Documents

Dion Alamsah
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Unity 3D Tutorial PART 2 v2

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.

Page 2: Unity 3D Tutorial PART 2 v2

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.

Page 3: Unity 3D Tutorial PART 2 v2

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

Page 4: Unity 3D Tutorial PART 2 v2

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.

Page 5: Unity 3D Tutorial PART 2 v2

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”.

Page 6: Unity 3D Tutorial PART 2 v2

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.

Page 7: Unity 3D Tutorial PART 2 v2

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.

Page 8: Unity 3D Tutorial PART 2 v2

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.

Page 9: Unity 3D Tutorial PART 2 v2

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.

Page 10: Unity 3D Tutorial PART 2 v2

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.

Page 11: Unity 3D Tutorial PART 2 v2

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.

Page 12: Unity 3D Tutorial PART 2 v2

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.

Page 13: Unity 3D Tutorial PART 2 v2

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.

Page 14: Unity 3D Tutorial PART 2 v2

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.

Page 15: Unity 3D Tutorial PART 2 v2

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.

Page 16: Unity 3D Tutorial PART 2 v2

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.

Page 17: Unity 3D Tutorial PART 2 v2

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.

Page 18: Unity 3D Tutorial PART 2 v2

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.

Page 19: Unity 3D Tutorial PART 2 v2

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.

Page 20: Unity 3D Tutorial PART 2 v2

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.

Page 21: Unity 3D Tutorial PART 2 v2

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.

Page 22: Unity 3D Tutorial PART 2 v2

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.

Page 23: Unity 3D Tutorial PART 2 v2

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

Page 24: Unity 3D Tutorial PART 2 v2

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.

Page 25: Unity 3D Tutorial PART 2 v2

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.

Page 26: Unity 3D Tutorial PART 2 v2

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.

Page 27: Unity 3D Tutorial PART 2 v2

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”.

Page 28: Unity 3D Tutorial PART 2 v2

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.

Page 29: Unity 3D Tutorial PART 2 v2

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)

Page 30: Unity 3D Tutorial PART 2 v2

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.

Page 31: Unity 3D Tutorial PART 2 v2

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)

Page 32: Unity 3D Tutorial PART 2 v2

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.

Page 33: Unity 3D Tutorial PART 2 v2

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.

Page 34: Unity 3D Tutorial PART 2 v2

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.

Page 35: Unity 3D Tutorial PART 2 v2

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).

Page 36: Unity 3D Tutorial PART 2 v2

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.

Page 37: Unity 3D Tutorial PART 2 v2

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.

Page 38: Unity 3D Tutorial PART 2 v2

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.

Page 39: Unity 3D Tutorial PART 2 v2

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.

Page 40: Unity 3D Tutorial PART 2 v2

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.

Page 41: Unity 3D Tutorial PART 2 v2

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.

Page 42: Unity 3D Tutorial PART 2 v2

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.

Page 43: Unity 3D Tutorial PART 2 v2

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.

Page 44: Unity 3D Tutorial PART 2 v2

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.

Page 45: Unity 3D Tutorial PART 2 v2

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.

Page 46: Unity 3D Tutorial PART 2 v2

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);

Page 47: Unity 3D Tutorial PART 2 v2

//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 {

Page 48: Unity 3D Tutorial PART 2 v2

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; } } }

Page 49: Unity 3D Tutorial PART 2 v2

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; } }

Page 50: Unity 3D Tutorial PART 2 v2

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 {

Page 51: Unity 3D Tutorial PART 2 v2

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;

Page 52: Unity 3D Tutorial PART 2 v2

} 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,

Page 53: Unity 3D Tutorial PART 2 v2

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(){

Page 54: Unity 3D Tutorial PART 2 v2

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)

Page 55: Unity 3D Tutorial PART 2 v2

{ //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”

Page 56: Unity 3D Tutorial PART 2 v2

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.