Tuttorial Translate() dan Raycast()
Buatlah project baru di Unity atau cukup Scene baru saja (jika
Anda masih ingin menggunakan project materi sebelumnya).
Berikutnya buat script dan beri nama TranslateScript.cs lalu ubah menjadi seperti di bawah ini
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.
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.
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.
Tambahkan sebuah asset gambar apapun dengan cara klik kanan pada
panel Assets lalu pilih Import New ASsets… Pasang texture tersebut pada Cube.
Gambar ini hanya untuk membuat cube lebih menarik saja.
Berikutnya buat script dan 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, apa yang terjadi?
Hentikan Games lalu modifikasi script,
tambahkan script berikut ini ke method update
Jalankan kembali game, lalu coba tekan tombol panah kanan, panah kiri. Selanjutnya tekan dan tahan tombol shift kiri + tekan tombol panah kanan atau kiri. Bagaimana hasilnya?
Lalu gunakan method tersebut pada metode Update() ubah method
update dengan script ini
Jalankan kembali game, tekan tombol spasi, apa 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.
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 lagi game, dan kini hanya dengan menggunakan satu script kita bisa membuat berbagai jenis game dengan pergerakan kamera yang berbeda-beda.
Script lengkap 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.
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.
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 luru 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.
Anda dapat melihat sebuah garis luru 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.
Pointer 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