Akhirnya kita berada pada tutorial terakhir untuk membuat game shooter sederhana.
Pada tutorial sebelumnya kita telah membahas bagaimana membuat suara tembakan dan efek flash tembakan (Scroll paling bawah untuk melihat tutorial sebelumnya). Sekarang kita akan belajar bagaimana membuat UI dan score. Penambahan ini dimaksudkan untuk membuat game menjadi lebih seru lagi.
Tidak usah lama lagi, berikut adalah tutorialnya:
48. Sejauh ini, senjata masih terlihat statis. Tidak ada pergerakan sama sekali. Kita akan menambahkan animasi weapon sway. Kita tambahkan script baru pada object Weapon
49. Pertama-tama buat deklarasi atau variable pada script WeaponSway.cs
50. Lalu, kita tambahkan script seperti di bawah ini
51. Pada object Weapon, atur isi dari variable Smooth dan Multiplier nya
52. Seharusnya, sekarang setiap kali player melakukan gesture pada mouse maka pergerakan dari model senjata tidak akan static lagi
53. Sekarang kita akan menambahkan UI text untuk menampilkan jumlah peluru yang tersisa. Pada CameraController.cs, kita deklarasikan dua variable baru
54. Pada void Update(), kita tambahkan ini
55. Pada void shoot(), kita tambahkan ini
56. Pada Unity, kita tambahkan UI Text yang berisikan jumlah peluru. Misal seperti ini
57. Pada main camera, drag and drop object UI Text Ammo tadi
58. Selanjutnya kita akan mencari gambar peluru yang akan kita tampilkan di sebelah kiri angka dari jumlah peluru tersisa. Contohnya dapat di download dari url https://www.flaticon.com/free-icon/bullet_7380401term=bullet&page=1&position=19&page=1&position=19&related_id=7380401&origin=tag
59. Pada Unity, buat folder baru bernama Images. Letakkan gambar png tersebut ke dalam folder tersebut. Lalu tambahkan UI Image pada scene. Berikan nama AmmoImage
60. Ubah Texture Type dari gambar bullet.png menjadi Sprite (2D and UI).
61. Masukkan gambar tersebut pada object AmmoImage dan atur posisi ukuran nya. Seperti ini
62. Seharusnya, setiap kali satu tembakan. Maka jumlah peluru akan berkurang
63. Selanjutnya kita akan menambahkan mekanisme score pada tiap target. Sebelumnya, coba atur target nya menjadi seperti ini agar collider nya tidak bermasalah
64. Pada target hijau, tambahkan script juga
65. Pada GreenScore.cs, tambahkan script seperti ini
66. Lakukan hal yang sama juga pada target lainnya. Selanjutnya di dalam void update, sesuaikan saja besaran dari angkaScore
67. Pada object Targets, tambahkan script
68. Tambahkan script seperti ini
69. Pada Unity, drag and drop semua variable yang diperlukan
70. Oke sudah, seharusnya setiap kita menembak target yang ada. Maka score akan ditambahkan.
71. Sekarang kita akan menambahkan recoil dengan teknik procedural. Pertama kita buatkan empty parent dulu untuk Main Camera. Misal seperti ini
72. Selanjutnya masukkan MuzzleFlash pada Weapon
73. Pada Main Camera, masukkan object Camera Holder ke dalamnya. Seperti ini
74. Pada object weapon, remove component script Weapon Sway. Dan buat script baru bernama Procedural Recoil
75. Di dalam file ProceduralRecoil.cs, kita siapkan dulu deklarasi variable-variable nya dan juga untuk void start
76. Selanjutnya kita tambahkan script ini
77. Pada CameraController.cs, kita tambahkan deklarasi yang berguna untuk menghubungkan dengan file ProceduralRecoil.cs. Tak lupa, untuk memanggil void recoil juga.
78. Pada Main Camera, tambahkan object Weapon ke dalam variable Recoil agar terdeteksi secara otomatis script Procedural Recoil nya
79. Lengkapi semua variable yang dibutuhkan pada Procedural Recoil. Seperti ini
80. Berikan empty parent terhadap prefab senjata nya. Misal seperti ini
81. Masukkan script weapon sway pada empty object tersebut
82. Apabila terjadi bug, coba lepaskan Main Camera dari parent Camera Holder. Dan juga hapuskan perintah cam.localRotation = Quaternion.Euler(currentRotation); pada file ProceduralRecoil.cs.
Sekian tutorial kali ini. Untuk melihat tutorial sebelumnya bisa klik link dibawah ini
Part 1 - Membuat project baru, target, dan senjata
Part 2 - Membuat suara dan efek flash tembakan
Yak sekian dari terakhir kali ini. Jika masih bingung bisa komen dibawah ya.😁