Duck Shooter dengan Unity part-8
Helo,
Tutorial duck shooter kali ini akan membahas batasan waktu permainan, sehingga pada saat pemain melebihi batasan waktu yang telah di berikan, maka permainan kita hentikan. Sebelum dimulai, tarik napas dalam-dalam, karena tutorial hari ini cukup panjang 🙂
Oke, tanpa basa basi lebih lanjut kita langsung mulai dengan game object baru dan kita beri nama “Time”, dan juga kita buat script dan kita beri nama GameTimer.cs
1 | using UnityEngine; |
Okey, kita lanjut lagi, dengan membuka script GlobalVariable.cs untuk menambahkan variable baru disana
1 | public class GlobalVariable{ |
Disini kita akan membuat state machine, atau bisa di bilang status mesin dari permainan kita. Jadi semua logika permaianan yang menyangkut dengan permainan kita hanya boleh berjalan saat state mechine ber-status “play”.
Sekarang saatnya kita melakukan setting kepada game object baru kita, masukan script “GameTimer.cs” didalam game object “Time”, dan kita atur setTimer kita menjadi 10 (saya ingin permainan berjalan 10 detik)
Selanjutkan buka DuckCollider.cs dan PeluruUI.cs untuk masukan beberapa script tambahan
1 | using UnityEngine; |
1 | using UnityEngine; |
Jika sudah selesai semuanya, kita lanjut dengan melakukan testing
Dari contoh diatas saya berhasil melakukannya, Tapi sepertinya seperti itu saja kurang menarik. Disini saya akan coba menambahkan beberapa object tambahan supaya terlihat lebih menarik.
Yang pertama saya ingin lakukan adalah dengan menambahkan mempersiapkan “Ready GO” untuk kepada pemain.
Walau terlihat simple tapi Tulisan diatas membuat game kita terlihat lebih menyenangkan. Untuk membuatnya, buat child gameobject di “Time”, dan kita beri nama “Ready” dan “Go” dan berikan juga Sprite Renderer pada component keduanya, jangan lupa juga memberikan sprite yang sesuai dengan nama tersebut
Jika sudah atur transform scale pada gameobject “Ready” dengan ukuran (x:2, y:2, z:1), atur scale pada gameobject “Go” degan ukuran (x:0, y:0, z:1). Jika sudah, kita akan membuat script kepada untuk keduanya
1 | using System.Collections; |
1 | using UnityEngine; |
sekarang buka kembali GlobalVariable.cs karena saya membuat tambahan variable, dan mengubah state machine menjadi “stop”. Jadi yang melakukan trigger dan mengubah state machine kita adalah game object “Go”.
1 | public class GlobalVariable{ |
Jika sudah semua, kalian boleh melakukan pengetesan untuk mengetahui perubahanya.
Kita lanjut dengan membuat gameobject tambahan yaitu “Time UP”. Object tambahan ini untuk mengingatkan pemain saat waktunya sudah habis. Kita buat child kembali pada gameobject “Time”, kita beri nama “time up”, lalu buat child lagi pada “time up”, karena kedua tulisan tersebut terpisah, jadi kita akan lebih mudah mengaturnya jika menjadi 1 game object. Kalian bisa melihat gambar di bawah untuk jelasnya
Sekarang kita kembali membuat script untuk menampilkan “time up” saat waktu sudah habis.
1 | using UnityEngine; |
Kita lanjutkan lagi dengan membuka GameTimer.cs dan mengubahnya menjadi code seperti dibawah
1 | using UnityEngine; |
Next saatnya kita coba kembali pemainan kita.
wuih… akhirnya selesailah tutorial untuk hari ini, saya harap kalian bisa membelajari beberapa dari tutorial ini
- mengetahui state machine (https://en.wikipedia.org/wiki/Finite-state_machine)
- Menggunakan Lerp (https://docs.unity3d.com/ScriptReference/Vector3.Lerp.html)
Sebelum saya tutup, saya kembali mengadakan quest untuk kalian semua. Bisakah kalian membuat tampilan waktu yang tersisa menggunakan sprite?
jika kalian lupa kalian bisa melihat kembali Duckshooter-part6, karena logikanya tidak terlalu berbeda berdengan itu. Okey sampai bertemu di next tutorial, dan tidak lupa saya akan meletakan unitypackage saya disini
Cheers 🙂