Penggunaan Fungsi Translate dan Raycast Pada Unity

Hello, pada kesempatan ini saya akan membagikan materi tentang penggunaan fungsi Translate dan Raycast pada Unity.

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.

Raycast merupakan fungsi untuk melakukan penembakan ke arah yang dituju oleh kursor mouse dan menghasilkan koordinat Vector 3D.

Pertama, buat project baru atau cukup dengan membuat scenes baru pada project yang telah dibuat sebelumnya. Pastikan project yang digunakan merupakan 3D Game.

Selanjutnya buat Object Planesebagai dasar nya dan Cube serta tambahkan Component Rigidbody pada Object Cube.

Kemudian atur posisi Cube agar berada tepat di atas Plane seperti berikut dengan menggunakan gizmo atau panel Transform. Sampai langkah ini Anda sudah memiliki sebuah Cube yang memiliki massa dan dipengaruhi oleh gaya gravitasi.

Tambahkan asset pada Object Cube dapat dengan mengimport atau drag and drop dari directory komputer kalian.

Selanjutnya buat script C# beri nama "TranslateScript.cs". Ketikkan script seperti pada gambar dibawah.
 
Pasang script tersebut pada object cube kemudian jalankan dan tekan tombol panah atas pada keyboard, perhatikan apa yang terjadi. Pada saat tekan tombol panah atas yang terjadi cube akan berpindah tempat maju ke depan dari letak asalnya.

Tambahkan pada script Translate tadi seperti pada gambar dibawah. Coba jalankan kembali game, lalu coba tekan tombol panah kanan, panah kiri. Selanjutnya tekan dan tahan tombol shift kiri + tekan tombol panah kanan atau kiri. 



Kemudian lengkapi script seperti pada gambar di bawah ini.


Coba jalankan game, jika tidak terdapat kesalahan maka pada saat menekan tombol panah kiri, kanan, atas, bawah Object Cube akan bergerak dan jika menekan tombol spasi maka akan berpindah untuk pergerakan ke kamera.

Berikutnya Object Cube akan dibuat bergerak menuju suatu titik berdasarkan inputan dari mouse. Atur posisi Main Camera seperti semula sehingga tidak lagi menjadi child dari cube dan dapat melihat keseluruhan Plane Cube dari atas.

Buat plane baru ubah nama pada Hierarchy menjadi "Target" dan perkecil ukurannya serta letakkan di sekitar cube.

Kemudian beri material atau assets pada plane target sehingga dapat terlihat jelas.

Berikutnya buat script C# dan beri nama "RaycastCube.cs". Ketikkan seperti pada gambar di bawah.

Pasang script tersebut di GameObject Cube, isikan parameter target dengan GameObject plane target yang tadi sudah dibuat. Untuk percobaan awal, biarkan parameter Is Moving tidak dicentang kemudian jalankan Game. Klik kanan pada sembarang tempat di plane pertama, perhatikan plane yang dipasang material akan berpindah pada posis tepat di posisi mouse dan Cube berputar sesuai dengan arah Plane tersebut.


Hal lain yang menarik dari proses ini adalah ketika kita berpindah dari tab Game ke tab Scene saat Game masih berjalan. Kita dapat melihat sebuah garis lurus berwarna merah yang ditembakkan langsung dari GameObject Main Camera menuju titik pusat plane kecil (target). Kira-kira seperti itulah bentuk ‘nyata’ dari fungsi RayCast yang merupakan salah satu fungsi utama yang sering digunakan untuk menciptakan interaksi antara user dengan lingkungan game.


Kursor mouse TIDAK PERNAH TAHU benda apa yang diklik dalam game. Satu-satunya yang bisa dilakukannya hanya mengirimkan posisi koordinat yang diklik. RayCast merupakan fungsi untuk melakukan penembakan ke arah yang dituju oleh kursor mouse dan menghasilkan koordinat Vector3D (dalam hal ini Plane). Pada posisi perpotongan antara garis merah dan plane putih itulah, objek target berpindah.

Sekian untuk materi pada kesempatan ini, semoga dapat bermanfaat, sampai ketemu pada part selanjutnya.



Komentar

Postingan Populer