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.
- Fungsi Raycast() merupakan fungsi untuk melakukan penembakan ke arah yang dituju oleh kursor mouse dan menghasilkan koordinat Vector 3D.
Buatlah project baru di Unity atau
cukup Scene baru saja (jika Anda masih ingin menggunakan project materi
sebelumnya).
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. Sampai langkah ini, Anda sudah memiliki sebuah Cube yang memiliki massa dan dipengaruhi oleh gaya gravitasi.
Berikutnya buat script, beri nama TranslateScript.cs lalu ubah menjadi seperti di bawah ini.
Pasang
script tersebut ke cube yang tadi
dibuat, lalu jalankan Games. Tekan tombol panah atas.
Hentikan Games lalu
modifikasi script, tambahkan script berikut ini ke method update.
Jalankan game kembali,
lalu coba tekan tombol panah kanan, panah kiri. Selanjutnya tekan dan tahan
tombol shift kiri + tekan tombol panah kanan atau kiri.
Tambahkan method isGrounded()
seperti di bawah, Lalu gunakan method tersebut pada metode Update() ubah method
update dengan script ini.
Jalankan game kembali, tekan
tombol spasi, apakah yang terjadi? Jika tidak ada kesalahan (debug) seharusnya
game sudah bisa menggerakkan Cube menggunakan keyboard dan meloncat jika
menekan tombol spasi. Ada game yang kameranya mengikuti objek kemanapun
perginya. Ada banyak cara untuk membuat seperti ini, salah satu cara yang
paling mudah adalah dengan menjadikan MainCamera sebagai child dari GameObject
Cube. Caranya drag saja langsung GameObject MainCamera di tab Hierarchy ke
GameObject Cube. Atur posisi MainCamera sesuai yang diinginkan, misalnya di
depan atau di belakang, bahkan di atas cube.
Jalankan
game lagi. Dan kini hanya dengan menggunakan satu script, kita bisa membuat
berbagai jenis game dengan pergerakan kamera yang berbeda-beda.
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.
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 game kembali, 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