Membuat Game 3D Dengan Unity : Mobile Racing Game (Part 3)

33441Pada Part 2 kita telah menambahkan Car Physics pada objek utama, tutorial kali ini kita akan mencoba manambahkan basic movements pada objek tersebut. Langsung saja buka kembali projectnya, kemudian buat folder baru dengan nama “Scripts” pada folder assets yang akan kita gunakan untuk menyimpan file-file script.

Pada folder “Scripts” tersebut, buat script baru dengan nama CarControls dengan script C#.

Double click pada script tersebut, sehingga muncul monodevelop. Mulai lakukan penulisan script
Pertama kita membuat beberapa variable dengan type WheelCollider yang selanjutnya akan kita wiring dengan masing-masing objek wheelcollider yang berada didalam objek utama (car). Kemudian kita mempunyai satu variable dengan tipe float untuk mengatur satuan maksimal torsi pada wheelcollider pada ban belakang. Torsi / Torque ini digunakan untuk memutar poros sebuah wheelcollider, sehingga memberikan gaya.
Pada void start, kita definisikan terlebih dahulu center of mass dari objek utamanya. Center of Mass ini digunakan untuk membuat objek (car) lebih stabil. Sebuah objek, terutama untuk objek dengan tipe simulasi car dengan center of mass yang rendah atau tidak tepat cenderung roboh dan membuat ojek seringkali terjungkal. Anda bisa mendapatkan nilai center of mass nya dengan cara debugging, cari nilai yang paling ideal, kali ini saya memasukan nilia -0.9.
Terakhir, pada void FixedUpdate buat beberapa setup untuk membuat car berjalan maju, mundur, belok kanan, belok kiri. Untuk membuat objek berjalan maju dan mundur, kita menggunakan ban belakang dengan memutar poros wheelcollider asing-masing ban. Karenanya kita memakai fungsi motorTorque. Kemudian untuk kendali belok kanan dan kirinya, kita menggunakan ban depan dengan menambahkan fungsi steerAngle pada wheelcollider untuk membuat rotasi pada y axis wheelcollider. Kemudian masing-masing fungsi (maju dan belok) dikalikan dengan inputan untuk mengontrol laju objek. Untuk kontrol maju dan mundur menggunakan axis vertical (tombol atas / w, tombol bawah / s pada keyboard), dan axis horizontal belok kiri dan kanan (tombol kiri / d, tombol kanan / a pada keyboard). Untuk memeriksa button mana saja yang digunakan dalam masing-masing axis bisa diperiksa di edit > project settings > input. Sebagai tambahan, pada beberapa kasus jika pada setup wheelcollider kita melakukan proses duplicate dari object lainnya biasanya direksi dari wheelcollider tersebut juga berbeda dengan direksi yang kita inginkan. Maka ketika menekan input axis, laju direksi dari objek tersebut juga terbalik (misalnya ketika menekan up, objek malah mundur). Untuk mengatasinya Anda bisa melakukan inverse pada input axisnya. Misal pada kasus saya ban depan kanan (wheelFL) wheelcollider directionnya keliru, sehingga jika ditekan inputan up / w, torsi wheelcollider malah mundur, maka di axisnya diberikan nilai negatif untuk inverse seperi berikut :
Jika telah selesai, ctr + s untuk save, kemudian letakan script CarControls.cs tadi pada objek utama.

Jangan lupa lakukan juga wiring pada variable-variable public yang membutuhkan beberapa objek wheelCollider.

Rubah juga massa dari objek car etrsebut menjadi 1500. Terakhir hit play, kemudian coba control objek utama tadi, apakah sudah sesuai dengan control yang diharapkan atau belum.

Dan, ya. Seharusnya objek dapat bergerak maju, mundur dan berbelok dengan menekan tombol-tombol sesuai axisnya.

 Full Scripts :

CarControls.cs

 What’s Next :

Pada part selanjutnya kita akan melakukan setup pada camera. Btw, sorry untuk updatenya yang telat dikarenakan ada kesibukan lain. Stay in touch!

Post a Comment