Pemrograman Permainan - Belajar Fungsi Translate() dan Raycast()


  1.  Apa itu fungsi Translate( ) 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.

     2.  Apa itu fungsi Raycast( ) pada unity

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


Praktik pemakaian fungsi Translate( ) and Raycast( )

     Buat sebuah project game 3D pada unity. Lalu tambahkan game object cube pada scene. dan buat component rigidbody yang diattach pada game object cube sebelumnya. Lalu buat sebuah plane sebagai lantai dari cube. Pastikan cube berada di atas plane. Tambahkan material pada cube agar warna tidak sama dengan plane.



  1. Pemakaian Translate ( ) 
Silahkan buat script C# bernama TranslateScript.cs lalu ketik script dibawah ini pada text editor yang anda pakai. Pasang script di game object cube dan coba jalankan game lalu tekan tombol arrow atas.
Yang terjadi adalah cube akan maju sesuai arah dari cube tersebut.


Tahap selanjutnya, hentikan game dan tambahkan script seperti screenshot dibawah ini pada method update.


Lalu silahkan play game. coba tekan tombol panah kanan, panah kiri. Selanjutnya tekan dan tahan tombol shift kiri + tekan tombol panah kanan atau kiri. Hasilnya cube akan bergerak maju dan mundur saat arrow atas dan bawah ditekan, saat ditekan arrow kanan dan kiri kepala dari cube akan melakukan rotate ke arah arrow yang ditekan. Saat L-Shift dan arrow kanan di tekan, cube akan bergerak secara horizontal.

Tambahkan sebuah method di script yang bernama IsGrounded( ) yang mengembalikan boolean.


Kemudian panggil method IsGrounded( ) pada method Update ( ) sebagai sebuah conditional statement.  Jalankan kembali game dan tekan tombol spasi. maka game object cube akan melompat bergantung pada value variabel distGround dan power.


Jika pada if statement diatas method IsGrounded( ) tidak dipanggil kira kira apa yang terjadi? Tentu saja cube akan melesat ke atas tanpa batasan. 

     2. Pemakaian Raycast( )

Cube akan dibuat bergerak menuju suatu titik berdasarkan inputan dari mouse. Atur posisi MainCamera seperti semula sehingga tidak lagi menjadi child dari cube dan dapat melihat keseluruhan Plane Cube dari atas kira kira seperti gambar dibawah.


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 dan ketik script dibawah ini.



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.



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 mouse, Cube juga akan bergerak menuju Plane.

Sekian tutorial blog yang saya buat. Terima kasih atas perhatiannya.

Kunjungi juga : Universitas Budi Luhur

No comments:

Post a Comment

Powered by Blogger.
 
Blog Teknologi © 2012 | Designed by Meingames and Bubble shooter