Translate dan Raycast dengan Unity
Pada kesempatan kali ini, kita akan membuat translate dan raycast degan unity. Sebelumnya kita pelajari dulu apa yang dimaksud dengan translate dan raycast, 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.
Kemudian, buat script lalu beri nama RaycastCube.cs
Fungsi Raycast() merupakan fungsi untuk melakukan penembakan ke arah yang dituju oleh kursor mouse dan menghasilkan koordinat Vector 3D.
Buatlah project baru di Unity. Pastikan Project yang digunakan adalah Game 3D.
Tambahkan sebuah GameObject cube dengan cara klik menu GameObject -> 3D Object -> Cube
Dan tambahkan sebuah Component Rigidbody melalui menu Component -> Physics -> Rigidbody
Kemudian atur posisi Cube agar berada tepat di atas Plane seperti berikut dengan menggunakan gizmo atau panel Transform.
Tambahkan sebuah asset gambar apapun dengan cara klik kanan pada panel Assets lalu pilih Import New ASsets… Kemudian pasang texture tersebut pada Cube.
Berikutnya buat script dan beri nama TranslateScript.cs
Berikutnya Cube akan dibuat bergerak menuju suatu titik berdasarkan inputan dari mouse.
Atur posis MainCamera seperti semula sehingga tidak lagi menjadi child dari cube dan dapat melihat keseluruhan Plane Cube dari atas.
Tambahkan sebuah Plane lainnya, beri nama Target. Kecilkan ukuran Plane tersebut dengan menggunakan gizmo scale dan tambahkan sebuah material dan beri warna tertentu sehinga plane target dapat terlihat kontras dengan Plane yang berada di bawahnya.
Kemudian, buat script lalu beri nama RaycastCube.cs
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 Anda berpindah dari tab Game ke tab Scene saat Game masih berjalan. Anda 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.
Langkah selanjutnya adalah, matikan kembali game, lalu centang parameter Is Moving, dan jalankan kembali game. Kini selain hanya melihat ke arah posisi titik yang diklik oleh mose, Cube juga akan bergerak menuju Plane.
Komentar
Posting Komentar