Pada kesempatan kali ini akan dibahas mengenai translate dan raycast. Kedua istilah (translate dan raycast) tersebut merupakan suatu fungsi pada game engine Unity yang dapat digunakan dalam membangun sebuah game, lebih tepatnya digunakan untuk membangun interaksi antara pengguna game (player) dengan lingkungan game.
Definisi umun:
· Fungsi Translate() adalah sebuah fungsi untuk membuat sebuah objek bergerak secara relatif terhadap posisinya sendiri dan bukan pada posisi dunia. Contohnya jika tombol panah maju ditekan maka objek akan mau ke depannya dan bukan ke arah depan pandangan pengguna.
Salah satu contoh implementasinya seperti pada game Counter Strike, di mana control pergerakanya menggunakan : tombol W digunakan untuk maju, S digunakan untuk mundur, A digunakan untuk bergerak ke samping kiri, dan D digunakan untuk bergerak ke samping kanan.
· Fungsi Raycast() merupakan fungsi untuk melakukan penembakan ke arah yang dituju oleh kursor mouse dan menghasilkan koordinat Vector 3D.
Contoh game yang menerapkanya seperti Defense of The Ancient (DoTA), di mana control untuk bergeraknya adalah tombol/klik kanan pada mouse.
Untuk lebih mengenal terkait dengan translate dan raycast, silakan ikuti langkah-langkah berikut:
Langkah 1 : Setelah masuk dalam projek Unity, buatlah gameObject. Mula-mula buatlah sebuah GameObjet plane dengan cara klik(kiri) pada jendela Hierarchy à 3D Object à Plane atau klik (kiri) pada menu GameObject à 3D Object à Plane.
Langkah 2 : Menggunakan asset Material. Material dapat dibuat dengan cara klik(kiri) pada tempat kosong dalam jendela Assets à Create à Material atau klik(kiri) Menu Assets à Create à Material, setelah itu berilah sebuah nama (misal: Warna Hijau).
Maka akan terbentuk sebuah Asset baru (Material) seperti ini:
Langkah 3 : Mengatur index warna asset Material. Untuk melakukanya dapat dilihat pada jendela Inspector Material, kemudian double klik pada bagian Albedo.
Nantinya akan memumculkan jendela pallete color seperti ini:
Pilih warna yang diinginkan, warna tersebut nantinya digunakan dan diterpakan pada Objek game guna mempercantik tampilan layar game. Lakukan cara yang sama untuk membuat dua(2) buah asset Material dengan warna yang berbeda, sehingga hasilnya seperti ini:
Langkah 4 : Memberikan massa pada objek. Untuk melakukanya dapat dengan menggunakan component Rigidbody (lebih lanjut terkait rigidbody : https://mudiidea.blogspot.com/2020/04/menggandakan-objek-pada-unity.html), hal ini dapat diterapkan pada objek cube dengan cara seperti berikut:
Sampai langkah ini, cube telah memiliki massa dan dipengaruhi oleh gaya gravitasi.
Langkah 5 : Menggunakan asset Material pada objek. Pada tahap sebelumnya telah dibuat 2(dua) buah material untuk menggunakanya dapat dengan cara drag & drop material ke layar Scene.
Tahap-tahap di atas merupakan konfigurasi lingkungan pada layar game, sementara fungsi translate dan raycast belum sama sekali digunakan. Untuk menggunakanya silakan ikuti langkah di bawah ini:
· Fungsi Translate()
Langkah 1 : Membuat file script (C# Script). Caranya dengan klik(kiri) Assets à Create à C# Script, lalu berilah sebuah nama (misal: TranslateScript.cs)
Langkah 2 : Modifikasi file script (C# Script). Tuliskan kode sebagai berikut:
(Penjelasan kode pada Langkah 4)
Langkah 3 : Menggunakan file script (C# Script) pada objek. Pada kasus ini, file script digunakan pada objek cube yang sebelumnya telah dibuat dengan cara drag & drop.
Jika sudah, cek pada jendela Inspector milik objek cube. Akan terlihat seperti berikut:
Langkah 4 : Menguji program. Sampai tahap ini untuk menguji penggunaan fungsi translate (yang dibuat dala script Langkah 2 di atas) dapat di cek dengan menjalankan game. Lalu cobalah perintah berikut :
o Tekan panah atas (↑) pada keyboard
o Tekan panah bawah (↓) pada keyboard
o Tekan panah kanan (Ã ) pada keyboard
o Tekan panah kiri (ß) pada keyboard
o Tekan spasi (spacebar) pada keyboard
Maka objek cube akan bergerak mengikuti panah/tombol yang telah di atur pada script, antara lain:
o Jika panah atas (↑) ditekan maka fungsi translate pada line 17 – 19 akan dieksekusi, outputnya objek akan bergerak ke atas.
o Jika panah bawah (↓) ditekan maka fungsi translate pada line 21 – 23 akan dieksekusi, outputnya objek akan bergerak ke bawah.
o Jika panah kanan (Ã ) ditekan maka fungsi translate pada line 25 – 27 akan dieksekusi, outputnya objek akan bergerak ke kanan.
o Jika panah kiri (ß) ditekan maka fungsi translate pada line 29 – 31 akan dieksekusi, outputnya objek akan bergerak ke kiri.
o Jika tombol spasi (spacebar) ditekan maka fungsi jump pada line 33 – 35 akan dieksekusi, outputnya objek akan bergerak ke atas searah sumbu Y atau jump.
o Pada line 38 – 40, menyatakan apabila objek (cube) berada pada permukaan atau tidak sedang melakukan fungsi jump maka fungsi isGround() akan bernilai TRUE, namun ketika fungsi jump sedang berjalan maka fungsi isGround() akan bernilai FALSE. Hal ini menyebabkan fungsi jump (pada line 33 – 35) hanyak bisa dilakukan saat objek menyentuh permukaan objek lain (plane) atau tidak menyebabkan terjadi infinity jump.
· Fungsi Raycast()
Langkah 0 : Membuat objek baru (plane (1)). Dengan scale (X=0.3, Y=0.3, Z=0.3), berilah sebuah material, sehingga menjadi seperti berikut:
Langkah 1 : Membuat file script (C# Script). Caranya dengan klik(kiri) Assets à Create à C# Script, lalu berilah sebuah nama (misal: RaycastScript.cs)
Langkah 2 : Modifikasi file script (C# Script). Tuliskan kode sebagai berikut:
(Penjelasan kode pada Langkah 4)
Langkah 3 : Menggunakan file script (C# Script) pada objek. Pada kasus ini, file script digunakan pada objek cube yang sebelumnya telah dibuat dengan cara drag & drop.
Jika sudah, cek pada jendela Inspector milik objek cube. Lalu lakukan perubahan seperti unchecklist pada TranslateScript dan checklist pada RaycastScript, kemudian isi parameter target dengan objek Plane(1).
o Klik (kanan) pada mouse di area layar game
o Checklist pada Boolean isDebug
o Lihat layar Scene
o Checklist pada Boolean isMoving
o Klik (kanan) pada mouse di area layar game
Maka objek cube akan bergerak mengikuti klik(kanan) mouse yang telah di atur pada script, antara lain:
o Jika klik kanan pada mouse maka fungsi raycast pada line 17 – 22 akan dieksekusi, outputnya adalah objek target (Plane (1)) akan bergerak pindah menuju tempat saat pointer mouse melakukan klik kanan. Pada line 21 terdapat perintah untuk membuat sebuah objek melihat ke objek lain (pada kasus ini objek cube akan selalu menghadap ke objek target (Plane (1)).
o Pada line 24 – 27 dijelaskan, apabila boolean isMoving di checklist maka objek cube akan bergerak menuju objek target (Plane (1)).
o Pada line 29 -32 merupakan satu perintah untuk menggambar sebuah Ray. Sedikit berbeda dengan fungsi lain, hasil dari fungsi ini hanya bisa dilihat di tab Scene setelah game dijalankan.
Demikian dokumentasi kali ini, Terima Kasih~
Komentar
Posting Komentar