Cara Membuat Kontrol Karakter Pada Unity Untuk Game Android dan Desktop

Cara Membuat Kontrol Karakter Pada Unity Untuk Game Android dan Desktop

Cara membuat kontrol karakter pada unity untuk game android dan desktop – Hai hai sobat, selamat datang di beelancah.com tutorial. Pada tutorial ini kita akan belajar membuat kontrol untuk menggerakan karakter 2D agar dapat berjalan dan melompat seperti game Super Mario.



Oh iya sobat, sesuai dengan judul. Nantinya kontrol yang telah kita buat ini dapat kita build dan dijalankan pada Android atau Desktop.

Jadi untuk kontrol Android nanti kita akan menggunakan beberapa button sebagai media input sedangkan untuk Desktop tentu kita akan menggunakan keyboard atau joystick sebagai media inputnya.

NOTE :
Untuk mengikuti tutorial ini, sobat harus paham dan mengerti dulu bagaimana membuat project baru, membuat script baru dan menambahkan atau mengedit script dan mengatur sprites game pada unity.

Kalau masih belum paham saya sarankan untuk membaca tutorial saya sebelumnya tentang basic unity.

Baiklah, sekarang kita mulai terlebih dahulu dengan membuat project baru sobat. Setelah itu kita import semua assets / sprites yang kita butuhkan seperti karakter, ground (pijakan) dan juga UI button yang akan kita gunakan sebagai media input di android. Untuk sprites yang saya gunakan dapat sobat download di bawah ini.

Cara Membuat Kontrol Karakter Pada Unity Untuk Game Android
Selanjutnya kalau sobat menggunakan sprites yang saya sediakan di atas, sobat harus mengatur dan slice sprite tersebut agar sprite dapat terpisah – pisah sesuai dengan yang kita butuhkan.

Drag and drop karakter yang akan kita gunakan sebagai Player ke dalam Scene / Hierarchy dan tambahkan beberapa komponen seperti Box Collider 2D dan Rigidbody 2D. 


Kemudian kita drag and drop juga sprite yang akan kita jadikan ground / sebagai pijakan bagi Player. Jangan lupa atur ukurannya agar sesuai dengan Player kita dan tambahkan juga komponen Box Collider 2D serta atur juga Layer Mask dari Default menjadi Ground.


Berikut ss dari unity saya setelah melakukan beberapa langkah di atas.

Screenshoot yang menunjukan keadaan Player
Screenshoot yang menunjukan keadaan Ground
Sekarang kita buat satu script baru agar Player dapat kita gerakkan dengan menggunakan Keyboard, disini saya berinama script tersebut dengan nama PlayerControlDesktop. 

Kemudia kita buka PlayerControlDesktop pada kode editor kita dan tambahkan beberapa baris kode program berikut :

NOTE : Saya harap sobat menulis ulang kode program ini, pokoknya jangan hanya di copy paste aja deh.


Oke sekarang akan saya jelaskan apa aja sih maksud dari kode program yang baru aja kita tulis tersebut.

Pertama kita mulai dari variabel – variabel berikut :


Variabel playerSpeed adalah variabel yang kita gunakan untuk mengatur kecepatan saat Player bergerak, semakin tinggi nilainya maka akan semakin cepat pula Player kita bergerak. Pada variabel ini hak aksesnya kita buat public agar nanti kita bisa mudah mengatur nilainya pada Inspector.

Untuk variabel playerDir (Player Direction) ini kita gunakan sebagai flag atau penanda yang menampung nilai yang di inputkan dari user, yaitu nilai dari input Horizontal.


Jadi ketika nilai dari variabel postif (+) maka player akan bergerak ke arah kanan sedangkan ketika variabel bernilai negatif (-) maka player akan bergerak ke arah kiri dan ketika playerDir nilainya nol (0) maka Player tidak akan bergerak / diam.

Perlu diingat ketika kita menggunakan Input.GetAxisRaw maka nilai dari inputan ini hanya terdiri dari -1 dan 1. Untuk lebih jelasnya tentang Inputan ini sobat bisa baca artikel saya sebelumnya tentang perbedaan Input.GetAxis dan Input.GetAxisRaw.

Sedangkan untuk variabel jumpForce kita gunakan untuk mengatur ketinggian Player kita saat melompat, semakin tinggi nilainya tentu Player akan dapat melompat dengan sangat tinggi.

Jadi variabel jumpForce ini kita gunakan pada fungsi PlayerJump() yang dapat sobat lihat di bawah. Pada fungsi tersebut diterangkan bahwa ketika kita menekan tombol Spasi dan varibel isGrounded bernilai true maka barulah Player dapat melompat lebih tinggi xD.


Loh memang isGrounded itu apa?  Kok Player hanya bisa melompat jika isGrounded bernilai true.

Jadi begini sobat, variabel isGrounded ini kita buat dengan tipe boolean untuk membatasi Player agar hanya dapat melompat ketika Player menginjak / di atas platform dengan layer Ground. Nanti akan saya jelaskan lagi lebih detailnya bagaimana isGrounded ini nilainya bisa berubah – ubah dari false ke true.

Tapi sebelum itu, kita lanjutkan lagi dengan variabel rb / Rigidbody2D


Nah sobat pastinya sobat sudah tahu dong, apa fungsi dari komponen Rigidbody2D itu? Yeps bener, komponen Rigidbody2D ini adalah komponen yang kita gunakan untuk mengontrol fisik dari Player, seperti adanya pengaruh gravitasi atau juga berat masa dari Player itu sendiri.

Setelah kita deklarasikan variabel tentu kita harus menginisialisasinya, disini saya inisialisasikan pada fungsi Start(), hal ini dilakukan agar script kita mudah mengenali komponen Rigidbody2D yang ada pada Player.


Variabel selanjutnya yaitu variabel facingRight


Variabel ini kita gunakan sebagai penanda bahwa ketika facingRight bernilai true maka Player kita akan menghadap ke kanan sedang jika false maka akan sebaliknya.

facingRight ini kita gunakan pada fungsi FlipPlayer, yaitu fungsi yang berisi untuk mengecek keadaan Player saat bergerak ke kanan dan menghadap ke kanan atau sebaliknya.


Jadi ketika kondisinya terpenuhi maka kita merubah nilai transform.localScale agar Player dapat mengahap ke kanan atau ke kiri.

Kita teruskan lagi dengan beberapa varibael terakhir yaitu :


Kalau variabel isGrounded sudah tahu dong digunakan untuk apa, jadi saya akan langsung aja ke varibel di bawahnya.

Variabel whatIsGround dengan tipe LayerMask ini kita gunakan mendeteksi game object manakah yang di beri layer dengan Ground. Sobat tentu masih ingetkan bahwa kita sudah mengatur layer game object yang kita jadikan sebagai pijakan menjadi Ground.

Tranform feetPos adalah variabel yang kita gunakan untuk menandakan posisi dari kaki Player kita atau lebih tepatnya sebagai object yang diumpamakan sebagai dasar dari kaki Player kita.

Yang terakhir yaitu variabel circleRadius yang digunakan sebagai radius dari kaki Player yang akan selalu dikalkulasikan dengan game object ground kita.

Terus selanjutnya dengan menggunakan fungsi OverLapCircle() yang ada pada class Physics2D kita tampung value ya di variabel isGrounded. 


Jadi variabel isGrounded ini nanti nilainya akan selalu true ketika Player kita berada di atas game object dengan layer yang bernama Ground.

Oke sekarang kita simpan script yang telah kita tulis, kemudian kita kembali kembali lagi di unity.
Nah kalau proses compile sudah selesai, lanjutkan dengan drag and drop script ke dalam Player.


Pada bagian What Is Ground, kita pilih Ground dan isikan nilai 0.1 pada bagian Circle Radiusnya.


Untuk bagian Feet Pos ya itukan masih kosong, jadi kita buat dulu game object kosong yang kita child kan pada Player dan juga kita posisikan tepat di bawah Player. Caranya kita klik kanan pada  Player lalu pilih Create Empty.


Maka pada Player kita akan bertambah satu game object baru. Kita ubah namanya dari GameObject menjadi FeetPos. Lalu drag and drop FeetPos tepat di bawah objek Player.


Terakhir sebelum kita coba Play untuk melihat hasilnya, kita drag and drop object FeetPos kita ke dalam Feet Pos yang ada di script yang telah kita letakkan di dalam Player.


Sekarang baru deh kita Play dan lihat hasilnya. Maka ketika kita menekan tombol A maka Player akan berjalan ke arah kiri sebaliknya ketika menekan tombol D maka Player akan berjalan ke arah kanan.

Sedangkan ketika kita menekan tombol Spasi maka Player akan melompat.
Jadi kurang lebih seperti itu caranya membuat kontrol karakter berjalan dan melompat untuk game Desktop.

Terus tanpa berlama – lama lagi kita lanjutkan dengan membuat kontrol karakter / Player untuk game Android atau Smartphone.

Cara membuat kontrol karakter untuk game Android

Tentu agar lebih mudahnya, kita buat lagi satu buah script dengan nama PlayerControlAndroid.
Buka script tersebut dan tuliskan beberapa baris kode program berikut :

Saya rasa saya tidak perlu menjelaskan secara detail dari script di atas, karena scriptnya hampir sama dengan script PlayerControlDesktop yang kita buat sebelumnya. Bedanya hanya terletak pada beberapa fungsi untuk mengatur value dari variabel playerDir.

Jangan lupa simpan script PlayerControllerAndroid dan kembali ke unity. Agar lebih mudah untuk di pahami bagaimana scriptnya bekerja, kita remove terlebih dahulu script PlayerControllerDesktop yang ada pada Player dan kita ganti dengan script PlayerControllerAndroid yang baru saja kita buat dan atur valuenya sama seperti sebelumnya.


Oke sekarang kita buat button untuk memanggil fungsi – fungsi yang telah kita buat agar Player dapat berjalan dan melompat.

Saya sarankan untuk sobat yang belum terlalu paham bagaimana caranya menambahkan komponen UI seperti button di unity sobat bisa menyimak tutorial sebelumnya tentang cara menambahkan komponen UI.

Pada tahapan selanjutnya ini saya buatkan langkah – langkahnya dalam bentuk video Karena saya rasa tutorialnya sudah cukup panjang kali lebar sobat (alesan)

Jadi sobat tinggal perhatikan dan praktekkan langkah – langkahnya berikut :



Saya rasa tutorial ini cukup sampai disini dulu, semoga apa tutorialnya dapat dipahami dan dipraktekkan dengan baik.

Juga jika sobat punya pendapat yang lain pada tutorial kali ini, yuk kita bahas lewat kolom komentar atau hubungi saya langsung juga enggak apa – apa. Saya welcome kok :D

Saya ucapkan terimakasih telah membaca dan jangan lupa untuk mempraktekkannya.

Karena lebih baik mempraktekkannya walaupun hanya satu kali daripada kita membacanya berulang – ulang sampai seribu kali. CMIIW

1 Response to "Cara Membuat Kontrol Karakter Pada Unity Untuk Game Android dan Desktop"

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel