Pada kesempatan kali ini, akan
dicoba untuk membuat sebuah game dengan kategori/genre FPS (First-Person Shooter) atau yang biasa disebuat dengan game
tembak-tembakan. Di mana nantinya pada game yang akan dibuat akan ada sebuah
objek yang dapat bergerak dan menembakan/mengeluarkan peluru yang bergerak
lurus ke depan dan dapat mengenai sebuah target. Contoh-contoh dari game FPS yang terkenal adalah Counter-Strike,
Point Blank, Cross Fire, dan lain-lain.
Game FPS sederhana yang akan dibuat akan menggunakan keyboard sebagai
input utama game (gerak dan aksi
tembak). Fokus utama pada game yang akan
dibuat ini adalah pada aksi dalam game(gerak, tembak, mencetak/menambah skor)
sementara untuk asset yang digunakan hanyalah asset/GameObject standar dari Unity (Cube, Sphere, Capsule,
Plane). Selain itu nantinya akan dibuat sistem score pada game dan membuat
objek(target) bergerak otomatis, untuk selengkapnya silakan ikuti
langkah-langkah berikut:
Langkah 1 : Menyiapkan asset Material.
Material dapat dibuat dengan cara
klik(kiri) pada tempat kosong dalam jendela Assets à Create à Material atau
klik(kiri) Menu Assets Ã
Create Ã
Material, setelah itu berilah sebuah nama (misal: Material Jingga). Lakukan
cara yang sama untuk membuat beberapa asset Material,
sehingga hasilnya seperti ini:
Langkah 2 : Menyiapkan asset Prefab.
Prefab dapat dibuat dengan cara klik(kiri) pada tempat kosong dalam jendela
Assets Ã
Create Ã
Prefab atau klik(kiri) Menu Assets Ã
Create à Prefab,
setelah itu berilah sebuah nama (misal: Prefab Peluru). Kemudian tambahkan Rigidbody dan berilah Material pada Prefab tersebut (lebih
lanjut terkait material & rigidbody: https://mudiidea.blogspot.com/2020/04/mengenal-translate-dan-raycast-pada.html),
sehingga hasilnya seperti ini:
Langkah 3 : Membuat gameObject. Mula-mula buatlah sebuah GameObjet plane dengan cara klik(kiri) pada
jendela Hierarchy à 3D Object à Plane atau klik (kiri)
pada menu GameObject à 3D
Object Ã
Plane. Aturlah Scale pada jendela Inspector
Plane, agar plane menjadi lebih besar/lebar.
Dan lakukan cara yang sama untuk
membuat GameObject lainya, sehingga hasil pada jendela Hierarchy seperti ini:
Atur tataletak GameObject
tersebut seperti berikut:
Langkah 4 : Menggunakan asset Material
pada objek. Pada tahap sebelumnya telah dibuat 3(dua) buah material untuk menggunakanya dapat
dengan cara drag & drop material ke layar Scene.
Langkah 5 : Setting game
object pada game. Salah satu setting yang digunakan adalah penggunaan Child-Parent
, maksud dari penggunaan Child-Parent pada game adalah agar ketika object
parent bergerak maka object childnya juga ikut bergerak. Cara membuat object
baru menjadi child adalah pada jendela Hierarchy
pilih object yang akan dijadikan parent lalu klik kanan à 3D Object à Object child, cara
lainya adalah dengan drag & drop
sebuah object yang akan dijadikan child ke objek parent.
Pada kasus di atas, akan dibuat object 3d Text yang merupakan object
child dari Target [Capsule] (object parent), pada jendela Hierarchy akan menjadi seperti ini:
Setting
berikutnya adalah membuat tag khusus
dengan nama ‘Peluru’ pada 3D Text yang
sebelumnya di buat. Tag ini nantinya akan digunakan pada script (pada langkah
berikutnya).
Lalu
gunakanlah tag ‘Peluru’ tersebut
Sampai
pada tahap ini, berikut tampilan lengkap dari jendela Inspector
pafa objek 3D Text
Selanjutnya
adalah memuat empty object child, yang nantinya akan digunakan sebagai tempat
keluarnya peluru. Untuk pembuatan child ini object yang menjadi parent adalah
object Penembak [Cube], pembuatanya dapat dilihat pada gambar berikut:
Kemudian
jadikanlah object Main Camera’ sebagai child dari object Penembak [Cube] dengan
cara drag & drop (Main Camera ke
Penembak [Cube]). Dengan ini maka kamera akan selalu ngetikuti pergerakan dari
game object parent(Penembak [Cube]). Hasilnya akan terlihat seperti ini:
Untuk
posisi dari object Main Camera sendiri
dapat disesuaikan, umumnya pada game FPS object Camera digunakan dibelakang objek
Penembak dan mengarah ke depan (sama dengan arah peluru ditembakkan). Contoh salah
satu posisi object Main Camera pada game:
Langkah 6 : Membuat script
aksi. Aksi yang akan dibuat diantaranya adalah aksi gerak (kiri, kanan, depan,
belakang), aksi tembak, hit & penambahan score, dan bergerak otomatis
(untuk target).
Script pertama akan digunakan pada objek Penembak dan aksi yang digunakan
adalah aksi gerak (kiri, kanan, depan, belakang) dan aksi tembak.
Caranya adalah: buat sebuah C#Script dan berilah sebuah
nama(ShootingTarget.cs) lalu isikan/tuliskan kode berikut:
·
Line
12-14 : Menyatakan fungsi untuk bergerak ke atas sesuai sumbu X, jika tombol
panah atas pada keyboard di tekan
·
Line
16-18 : Menyatakan fungsi untuk bergerak ke bawah sesuai sumbu X, jika tombol
panah bawah pada keyboard di tekan
·
Line
20-22 : Menyatakan fungsi untuk bergerak ke kanan sesuai sumbu X, jika tombol
panah kanan pada keyboard di tekan
·
Line
24-26 : Menyatakan fungsi untuk bergerak ke kiri sesuai sumbu X, jika tombol
panah kiri pada keyboard di tekan
·
Line
28-34 : Menyatakan fungsi untuk membuat duplicate dari object, jika tombol
space pada keyboard di tekan
·
Line
33 : Menyatakan bahwa object(duplicate) akan bertahan selama 5 detik pada game
(setelah itu akan terhapus otomatis
·
Line
36-38 : Menyatakan fungsi untuk menggerakkan object temp (object hasil duplicate) lurus ke depan sesuai sumbu X
Setelah
itu, periksalah jendela Console untuk
mengecek error pada kode program. Jika tidak ada error, gunakanlah script
tersebut (ShootingTarget.cs) pada object Penembak [Cube]
Isikan
value dari ‘Posisi Tembak’ dan ‘Peluru’. Parameter ‘Posisi Tembak’ adalah
parameter untuk menentukan tempat peluru keluar/ditembakkan (pada kasus ini
digunakan Empty Game Object yang merupaka child dari object Penembak
[Cube]), parameter ‘Peluru’ adalah parameter untuk menentukan object apa yang akan
ditembakkan (pada kasus ini digunakan Asset Prefab
Peluru)
Sampai
langkah ini cobalah menjalankan game. Hasilnya adah object Penembak
[Cube] dapat bergerak menggunakan arrow key pada keyboard dan menembak
menggunakan tombol space pada
keyboard.
Sampai
pada tahap ini dapat dilihat bahwa object Target [Capsule] masih diam dan
object child 3D Text akan terus muncul. Untuk membuat seolah tampak nyata
(seperti permainan). Buat script kedua yang akan digunakan pada objek Target dan
aksi yang digunakan adalah aksi gerak otomas, hit, dan penambahan score.
Caranya adalah: buat sebuah C#Script dan berilah sebuah nama(Target.cs)
lalu isikan/tuliskan kode berikut:
·
Line
18 : Menyatakan perintah untuk menggerakkan object yang dikenai script secara
otomatis ke kiri dan kanan sesuai sumbu X.
·
Line
21-23 : Menyatakan fungsi untuk menyembunyikan object 3D Text secara visual
pada game
·
Line
26-31: Menyatakan fungsi yang akan dijalankan apabila ada object(peluru) yang
mengenai object Target [Capsule]
·
Line
27 : Menyatakan perintah untuk menghapus object(peluru) yang mengenai object
Target [Capsule]
·
Line
28 : Menyatakan perintah untuk menambahkan score
·
Line
29 : Menyatakan perintah untuk menampilkan object 3D Text (yang sebelumnya disembunyikan
oleh perintah line 22)
·
Line
30 : Menyatakan perintah untuk membuat object 3D Text (pada line 29)
ditampilkan selama 3 detik
·
Line
34-38 : Menyatakan fungsi untuk menampilkan score pada jendela game (akan
tampil pada pojok kiri atas di jendela game)
Setelah
itu, periksalah jendela Console untuk
mengecek error pada kode program. Jika tidak ada error, gunakanlah script
tersebut (Target.cs) pada object Target [Capsule]
Isikan
value dari ‘3D Text’ dan ‘Pesan’. Parameter ‘3D Text’ adalah parameter untuk
memilih objek yang akan muncul apabila terkena hit oleh peluru (pada kasus ini
digunakan 3D Text yang merupaka child
dari object Target [Capsule]), parameter ‘Pesan‘ adalah parameter untuk
menampilkan pesan pada object 3D Text dari parameter sebelumnya (pada kasus ini
diisi dengan “Bingo!”)
Langkah
terakhir adalah dengan membuat fungsi isTrigger pada object Target [Capsule]
menjadi aktif, caranya adalah dengan checklist
pada bagian Is Trigger melalui jendela Inspector
Target
[Capsule].
Cobalah
untuk menjalankan game, dan dapat dilihat pada pojok kiri atas jendela game
terdapat fitur score yang akan
pertambah dan mengeluarkan pesan ketika object Target [Capsule] terkena
hit oleh peluru, object Target [Capsule] juga dapat bergerak(kiri-kanan)
secara otomatis.
Demikian dokumentasi kali ini,
Terima Kasih~
Komentar
Posting Komentar