Beberapa waktu lalu saya mencoba membuat sebuah coding sederhana untuk membuat joystick. Akhirnya setelah menggunakan beberapa logika sederhana akhirnya saya berhasil membuat sebuah joystick yang berfungsi menggerakkan suatu objek. Namun disini kendala yang ada adalah bulatan tengah yang bergerak ternyata keluar dari circle dari joystick dan mengikuti arah tab touch pada layar. Setelah melakukan beberapa riset akhirnya saya berhasil menemukan cara bagaimana membatasi ruang gerak dari bulatan tersebut, namun tetap mengikuti arah gerak touch tanpa harus keluar dari circle joystick. Yaitu dengan menggunakan fungsi Vector3.ClampMagnitude().
Sebenarnya fungsi ini sendiri saya sudah cukup lama mengetahui namun tidak mengerti apa fungsinya, ternyata fungsinya adalah memberikan batas transform posisi dari objek yang kita inginkan (ini versi saya sih hehehe). Mungkin untuk lebih jelasnya silahkan lihat potongan gambar dan koding dibawah.
(Joystick keluar dari circle)
(Joystick tidak keluar dari circle)
di gambar pertama bisa kita lihat merupakan permasalahan yang saya alami. Mungkin sedikit sepele bagi beberapa orang yang sudah tahu caranya, namun akan sedikit memutar otak bagaimana memainkan logika agar tidak keluar dari circle tersebut.
Jadi disinilah saya menggunakan fungsi Vector3.ClampMagnitude() yang ditujukan pada objek lingkaran hitam agar tidak keluar dari lingkaran hitam transparan pada gambar di atas.
Pertama tama saya inisialisaikan sebuah gameobject diikuti dengan radius / batasan maksimal objek bergerak
public float radius;
public GameObject joystick;
Selanjutnya yaitu membuat void sendiri yang nantinya akan dipanggil ketika objek tersebut mulai digerakkan
void JoyStickRadius(){
joystick.transform.localPosition = Vector3.ClampMagnitude(indikator.transform.localPosition,radius);
}
Well, silahkan tentukan dalam batasan berapa radius gameobject joystick bergerak. Tempatkan / panggil JoyStickRadius() pada saat kamu melakukan deteksi touch screen, biasanya sih pada void Update ().
Pada artikel kali ini sengaja tidak saya cantumkan full script dari joystick karena mungkin akan sedikit membingungkan, seperti yang kita tahu kegunaan joystick sendiri berbeda-beda. Hanya untuk mewaspadai jika sobat nanti malah kebingungan melihat coding alien saya yang kurang rapi hehehe @_@.
Mungkin di artikel kedepan saya akan membuat full tutorial bagaimana cara membuat joystick sederhana pada Unity3D . ^_^. Selamat mencoba !!
Mantaps bro Tutonya
ReplyDeleteNice sharing bro..
ReplyDelete