Membuat Shooting Target dengan Unity

Shooting Target 
 



Pada postingan ini saya akan menyampaikan materi Pembuatan Shooting Target dengan Unity, materi ini saya pelajari pada mata kuliah Pemrograman Permainan yang diajarkan Pak Dolly Virgian Shaka Yudha Sakti di Universitas Budi Luhur.

Saya menggunakan Editor Unity Versi Unity 2019.3.12f1 (64-bit)

Tujuan materi pada postingan kali ini adalah:
  1. Mampu membuat membuat game sederhana untuk menembak sebuah target.
  2. Mampu memanfaatkan fungsi Instantiate() dan mengembangkannya dalam sebuah game
  3. Memahami pembuatan trigger GameObject yang berbenturan.

Materi kali ini membahas kembali fungsi Instantiate(). Jika pada materi 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.

Berikut Langkah-langkah pembuatannya:
  • 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 Plane pada komponen Transform menjadi (0,0,0). Setelah itu klik Main Camera di tab Hierarchy, kemudian ganti Positionnya menjadi (0,0,0) dan Rotationnya menjadi (0,90,0). 
    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 menu, GameObject -> Create Empty Child.





    Siapkan Prefab Bola yang berasal dari artikel materi pembahasan sebelumnya. Ganti nama prefab menjadi Peluru.




    Tambahkan sebuah Cylinder 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 Cylinder dengan text mengarah ke main Camera.
    Gunakan gizmo untuk dapat melakukannya. Berikut ini contoh tampilannya





  • Membuat Script

    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.

    Selanjutnya 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() dibawah method  Start()  untuk menyembunyikan 3D Text dan method OnTriggerEnter() untuk menangani Collision.




    Pasang script Target.cs pada GameObject Cylinder, kemudian isilah parameter text3d dengan GameObject 3D Text dan parameter pesan dengan teks sesuai keinginan Anda untuk pesan saat target terkena peluru.





    Selanjutnya jalankan games dan cobalah menembak Cylinder yang ada di tengah. Apakah pesan muncul dan score bertambah? Jika belum, coba cek apakah prefab myBall sudah memiliki Tag “Bola”, karena script Target.cs pada
    baris 22 melakukan cek tersebut. Untuk menambahkan Tag pada myBall, untuk lebih jelasnya silahkan baca postingan saya yang membahas Tag pada prefab disini.




    Agar game sedikit lebih menantang, coba remark baris perintah script ShootingTargets baris 21 s.d 31 supaya Main Camera berputar.






  • Modifikasi Script

    Buat script dengan nama TargetMove.cs, nantinya script ini akan membuat target Cylinder bergerak ke arah samping kiri dan kanan untuk menyulitkan saat menembak:






    Lalu pasang script TargetMove.cs diatas ke GameObject Cylinder, maka ada 2 buah script yang terpasang di GameObject Cylinder yaitu Target.cs dan TargetMove.cs.
    Jalankan Game, lalu Cylinder akan bergerak ke arah kiri dan kanan, serta Main Camera juga akan berputar sembari kita menembakkan Peluru karena tadi kita remark baris perintah script ShootingTargets baris 21 s.d 31.

    Modifikasi


    Selanjutnya edit kembali Script ShootingTarget.cs dengan menambahkan method OnGUI supaya bisa menembak peluru menggunakan klik Mouse. Fungsi menggunakan mouse ini sudah pernah dibahas diartikal prefab dan instantiate disini.
    Berikut Scriptnya:

    ShootingTarget


    Berikutnya saya modifikasi posisiTembak, buat Cube baru lalu buat empty child pada Cube dan pasang Script ShootingTarget.cs pada Cube tersebut serta isi parameter posisiTembak dengan Empty GameObject yang menjadi child dari cube.





    Ketika game di jalankan hasilnya seperti ini:




Sekian Pembahasan mengenai Pembuatan Shooting Target di Unity dari saya, semoga cukup jelas dan bermanfaat. Terimakasih sudah berkenan membaca.
Kunjungi kampus saya disini.
 



Comments

Popular Posts