Shooting Target ( Pertemuan ke-8 )



Materi kali ini membahas kembali fungsi Instantiate(). Jika pada materi pertemuan-6 sebelumnya bola yang dibuat secara run time dibiarkan jatuh begitu saja, kali ini bola-bola tersebut akan dilemparkan menuju sebuah sasaran. Unity dilengkapi dengan event standar untuk mendeteksi dua buah GameObject yang berbenturan, salah satunya adalah CollisionDetection.


Buatlah project baru di Unity atau cukup scene baru saja jika masih ingin menggunakan project yang sudah digunakan dalam materi sebelumnya. Tambahkan sebuah Plane dengan cara klik menu GameObject -> 3D Obect -> Plane.

Atur posisi main Camera menggunakan gizmo sehingga didapat tampilan kurang lebih seperti ini.



Masih dengan Main Camera terpilih pada tab Hierarchy, tambahkan EmptyChild dengan cara klik kanan Main Camera --> Create Empty


Siapkan Prefab Bola yang berasal dari materi pertemuan-6 sebelumnya. Ganti nama prefab menjadi Peluru.



Tambahkan sebuah Capsule atau objek apapun untuk menjadi target sasaran tembak, lalu centang pilih Is Trigger pada objek tersebut.
Letakkan objek sasaran berada pada sebrang Main Camera sehingga tampak seperti berikut ini.





Buat sebuah 3D text dengan cara klik menu GameObject -> 3D Object -> 3D Text.
Ganti tulisan “Hello World” dengan “Bingo!” lalu tempatkan 3D Text tersebut tepat di atas Capsule dengan text mengarah ke main Camera,  Gunakan gizmo untuk dapat melakukannya.



Berikutnya buatlah script C# dan beri nama ShootingTarget.cs lalu ubah code menjadi seperti ini:
Deklarasikan beberapa variable, lalu berikan inisialisasi kamera di method Start


Ubah method Update() sehingga menjadi seperti ini:



Pasang script ShootingTarget.cs pada GameObject Main Camera dan isilah parameter posisiTembak dengan EmptyGameObject yang menjadi Child Main Camera dan parameter Bola dengan prefab peluru




Sampai tahap ini, jika Game dijalankan, sebuah bola akan meluncur dari kamera setiap kali tombol spasi ditekan. 





Tahap berikutnya adalah, akan dibuat skema, ketika bola mengenai target alias capsule tadi kita akan memberi keterangan pada 3D Text dan hitung score hasil tepat  sasaran. Buatlah sebuah script C# kembali dan beri nama Target.cs

Deklarasikan beberapa buah variable dan modifikasi method Start().


Buat method Sembunyikan() untuk menyembunyikan 3D Text dan method OnTriggerEnter() untuk menangani Collision.


Pasang script Target.cs pada GameObject Capsule, kemudian isilah parameter text3d dengan GameObject 3D Text dan parameter pesan dengan teks sesuai keinginan Anda untuk pesan saat target terkena peluru, disini sebagai contoh saya mengisinya dengan kata " HIT !! "



Selanjutnya jalankan games dan cobalah menembak capsule yang ada di tengah. Apakah pesan muncul dan score bertambah? Jika belum, coba cek apakah prefab sudah memiliki Tag “Bola”, karena script Target.cs pada baris 26 melakukan cek tersebut.


Jika tak memiliki tag Bola buatlah tag barunya dengan cara klik Add Tag .



Klik tanda yang diberi kotak merah lalu isikan Tag name dengan Bola lalu save dan ubah tag prefab peluru yang tadinya Untagged menjadi bola.

dan inilah hasil game jika tidak memiliki kesalahan, jika bola mengenai kapusl maka text akan muncul diatas capsule dan score bertambah setiap bola mengenai capsule.




Agar game sedikit lebih menantang buatlah script baru dengan nama Rintangan.cs dan isilah script sebagai berikut.



Setelah itu taruh script Rintangan pada GameObject capsule dan jalankan game, dan berikut adalah hasilnya.



dan hasilnya adalah GameObject capsule bergerak ke kanan dan kiri dan membuat game lebih menantang dan lebih seru.


Berikut ini adalah bagaimana cara menghilangkan Text3D jika peluru tidak mengenai GameObject capsule, untuk menghilangkan text nya pertama buatlah sebuah plane baru letakan tepat dibelakang object capsule seperti ini ( ubah rotasinya menjadi -90 ) .



lalu matikan Mesh Renderer dari plane tersebut agar plane tidak terlihat texturenya saja padahal dia berada ditempat, dan juga aktifkan is Triggernya.


lalu buatlah script baru dengan nama remover.cs dan isi scriptnya sebagai berikut.



Setelah itu taruh script pada GameObject plane yang baru kita buat, disini plane yang tadi saya buat saya berinama remover sebenarnya nama boleh bebas tapi disini saya samakan dengan nama script isikan value Text3d dengan 3dText yang tadi kita buat.




jika sudah lalu jalankan game dan berikut adalah hasilnya, jika kita mngenai GameObject capsule maka text akan muncul dan score akan bertambah dan jika tidak maka text akan menghilang dan score tetap .



Sekian tutorial singkat ini mengenai pembuatan Shooting Target, tunggu update selanjutnya semoga tutorial ini bermanfaat bagi kita semua.




In Collaboration With : Universitas Budiluhur 






Komentar