MODUL TINGKAT MENENGAH
F. Membuat Serangan Musuh (Batu Luar Angkasa)
Sebuah game akan seru kalau ada misi. Misi padagame ini adalah menembak batu-batu luar angkasa sebanyak mungkin. Setiap batu-batu yang kena akan mendapat skor +10. Pemain dianggap berhasil menyelesaikanLevel 1kalau mencapai skor 1000. Mari kita mulai membuatnya. Pada game ini kita menggunakan game object sphere
untuk batu luar angkasa. Langkahnya adalah sbb : - KlikGame Object > Create Other > Sphere
- Ubah pada jendelaInspectorsbb :
Transform
Position: x = 0, y = 0 dan z= 0
Rotation: x = 0, y = 0 dan z = 0
Scale: x = 1 Y = 1 dan z = 1 - KlikAssets > Create > Material
- Beri namaMaterialBatu
- Pilih warna merah, lalu dragMaterialBatuke dalamSphere
- KlikAssets > Create > Javascript
- Beri namaScriptBatu
- DragScriptBatu ke dalamSpherepada jendelaHierarchy
- Klik dua kaliScriptBatu,buatlahscriptsebagai berikut :
- Klik sphere, editBatu Speed menjadi5(boleh nilainya diubah 10)pada jendelaInspector
- TekanPlay! batu sekarang sudah bergerak menuju ke pesawat.
- Kalau posisi batu(sphere)masih di tengah, makadragke posisi sumbuy = 5.5
seperti pada gambar 2.66
Gambar 2.66 mengubah posisi batu(sphere)ke sumbu y=5.5
Masalah :
Persis seperti peluru, kita tidak menginginkan batu terus bergerak setelah keluar area permainan, karena program akan terus menerus memprosesnya. Oleh karena itu cek posisi batu ketika keluar dari area layar. Kemudian kita
berikanscriptuntuk mengembalikan posisi batu(sphere)ke koordinat semula ketika sudah melewati area layar permainan.
Perhatikan gambar 2.67
Gambar 2.67 men-drag spheresampai dapat koordinat seperti gambar 2.68 drag
Y = 5.5
Y = -5.5
Arah gerak batu
Setelah kita mendapatkan koordinat, maka langkah selanjutnya adalah menambahkanscriptsbb :
Ketika di-play posisi pergerakan batu monoton dalam satu alur lintasan saja. Jelas dalam sebuah game kondisi ini akan sangat membosankan. Oleh karena itu, kita perlu menambahkan script agar serangan batu tersebut random/acak posisinya. Berikutscript-nya :
Langkah selanjutnya adalah bagaimana caranya untuk deteksi tumbukan antara
sphere (batu luar angkasa) dengan cube (pesawat) si player ? atau deteksi tumbukkan antara peluru dengan batu? Sehingga ketika batu mengenai
player(cube), maka nyawa player akan berkurang, begitu juga ketika batu terkena tembakan peluru , maka batu akan hancur!
Inilah yang disebut collision detection. Selain collision detection, Unity
memudahkan kita dengan memberikanfasilitas tag dalam jendelaInspectoruntuk setiapgame object. Sehingga setiap game objectyang diberitag dapat dikenali oleh
game objectlain.
Lihat gambar 2.69 ketikaspherebelum diberitag
Gambar 2.69 Memberi tag pada game object
- Lalu KlikUntagged > Add Tag
- Beri namabatupadaElement 0
Gambar 2.69 memilih tag
- Klik lagisphere > batu
- Sekaranggame objectspheresudah memilikitagdengan namabatu
- Langkah selanjutnya, buka scriptPeluru.Js di jendela Project. Tambahkan
scriptsebagai berikut :
- Lalu klikSpherepada jendelaHierarchy
- pastikan di jendelaInspector, anda memberikan centang padaIs Trigger
- Berikan tanda centang juga pada peluruPrefab (game object peluru) dan
cube(game object batu)
Gambar 2.71 memberi tanda centang pada capsule dan box collider
Coba tekan play ! seharusnya setiap peluru yang ditembakkan mengenai sphere
(batu) maka nilai akan bertambah 10. Permasalahan :
Seharusnya, selain nilaiplayer bertambah, batu yang terkena tembakan pun hancur. Sedangkan sekarang tidak..!
Untuk menyelesaikannya, maka lakukan langkah sebagai berikut : - BukascriptPeluru.Js
- Tambahkan baris script untuk menghancurkan game object setelah script
menambah nilai :
Sehinggga ketika di-play maka game object batu (sphere) akan hilang/hancur sewaktu terkena peluru. Kemudian peluru lainnya akan muncul kembali secara random/acak.
Memberikan Efek Ledakan
Efek ledakkan akan diberikkan ketika peluru mengenai batu, sehingga gametampak lebih menarik. Langkahnya adalah sebagai berikut :
- KlikGame Object > Create Other > Particel System
- Ubah namanya menjadiLedakandi JendelaInspector
- Ubah pada jendelaInspectorsbb :
Transform
Position: x = 0, y = 0 dan z= 0
Rotation: x = 0, y = 0 dan z = 0
Scale: x = 1 Y = 1 dan z = 1
- Berikan nilai seperti pada gambar 2.72 (perhatikan detail nilai-nilai nya)
Gambar 2.72 Mengatur parameter partikel pada jendela Inspector
Langkah selanjutnya adalah membuatprefabuntuk ledakkan. - KlikAssets > Create > Prefab
- Ubah namanya menjadi ledakanPrefab
- Drag ledakandi jendelaHierarchykedalamLedakanPrefabdi jendela
Project
Gambar 2.73 Men-drag ledakan kedalam ledakanPrefab
- Laludeleteledakandi jendelaHierarchy
- Langkah berikutnya adalahinstantiateledakkan terhadappeluruPrefab. - Klik dua kaliScriptPeluru.js
- Tambahkanscriptsebagai berikut :
drag
Menambahkan Audio pada ledakkan
Supaya permainan lebih seru, tambahkan efek suara ketika terjadi ledakkan. Ikuti langkahnya :
- Cari suara bom untuk efek ledakkan, simpan di folderassets/sound.
- KlikledakanPrefab
- KlikComponent > Audio > Audio Source
- Dragcarbomb.wavke dalam Audio Clip
Gambar 2.74 Men-drag audio kedalam Audio Clip di Jendela Inspector
- CobaPlay!
Mengurangi Nyawa Player dan Membuat Menu Kalah
Pada bagian awal, kita sudah menentukan aturan game yaitu, jika peluru mengenai
player, maka nyawa akan berkurang. - BukascriptPlayer.Js
- Tambahkan baris sebagai berikut :
OK, coba tekanPlay! lalu coba biarkan batu(sphere)mengenai player(cube)
Masalah :
Nyawa yang diberikan sebanyak 3, sehingga apabila terkena serangan batu sebanyak tiga kali, seharusnya player dianggap kalah. Yang terjadi sekarang adalah, nilai nyawa teus berkurang menjadi dari 3 menjadi 2, 1, 0, -1, -2 dst ..padahal kita menginginkan ketika nyawa =0 maka permainan berakhir (game over)!
Solusi :
- Buatscenebaru, klikFile > New Scene
- Savedengan namasceneKalah
- Buat Script baru, KlikAssets > Create > Javascript
- Ubah dengan namascriptKalah
- Edit denganscriptsebagai berikut :
- Buatgame objectkosong dengan cara klik Game Object > Create Empty
- Drag scriptKalah di jendela project ke dalam GameObject di jendela
Hierarchy(lihat gambar 2.75)
Gambar 2.75 insert scriptKalah kedalam empty game Object di sceneKalah
Sebelum melanjutkan, pastikanbuild settingsebagai berikut :
Gambar 2.76 Build Setting drag
Langkahnya adalah :
- KlikFile > Build Setting
- Draglevel1.unitydansceneKalah.unity keScenes In Build
Gambar 2.78 Mengurutkan scene pada build setting.
Langkah selanjutnya adalah menghubungkan level1 dengan sceneKalah, caranya adalah :
- Klik dua kaliscriptPlayer.js
- Tambahkanscriptsbb :
Artinya, jika nyawa player kurang atau sama dengan nol, maka load sceneKalah
drag
Nama scene yang di-load di script
Membuat Menu Awal
Langkahnya sama ketika membuat menu untukscenekalah, yaitu sbb : - Buatscenebaru, klikFile > New Scene
- Savedengan namasceneAwal
- Buatscriptbaru, KlikAssets > Create > Javascript
- Ubah dengan namascriptAwal
- Editdenganscriptsebagai berikut :
- KlikGame Object > Create Empty
- DragScriptAwalkedalam emptyGame Object
Gambar 2.79 men-drag scriptAwal kedalam empty game object
Langkah selanjutnya adalah :
- KlikFile > Build Setting
- DragsceneAwal kedalamBuild Setting
Gambar 2.80 men-drag sceneAwal kedalam build setting
- Savepekerjaan Anda !
Membuat Menu Menang
Langkahnya sama ketika membuat menu untukscenekalah, yaitu sbb : - Buatscenebaru, klikFile > New Scene
- Savedengan namasceneMenang
- Buatscriptbaru, KlikAssets > Create > Javascript
- Ubah dengan namascriptMenang
- Editdenganscriptsebagai berikut :
- KlikGame Object > Create Empty
- DragScriptMenangke dalamempty Game Object
- KlikFile>Build Setting
- DragSceneMenangke dalamScene In Build
Gambar 2.81 men-drag sceneMenang kedalam build setting
Tambahkanscriptsbb padaplayerscript.Js, Anda mengerti maksudnya bukan ? :
Langkah terakhir sebelum game di-build..ubah urutan sbb, agar pada saatgame
dimainkan,sceneAwalyang di-load terlebih dahulu..!
Gambar 2.82 Mengurutkan scene yang sesuai kedalam build setting
OK .tutorial utama membuatGame Petualangan Angkasadianggap selesai. Tahap berikutnya adalah memoles game ini agar lebih real dan menarik. Ada tiga
komponen yang ditambahkan padagameini yaitu : - Penambahan GUI Texture untuk setiap menu;
- Penambahan benda-benda luar angkasa dengan partikel;
- Penggantian model pesawat daricube menjadi Model Pesawat yang dibuat di software 3D modeling, dalam contoh ini menggunakan3D Max.
Ubah urutan scene dengan cara di-drag, misalnya sceneAwal di-drag dari urutan 2 menjadi urutan 1
Supaya terlihat perbandingannya berikutcapture gamesebelum di tambahkan ketiga komponen diatas :
Gambar 2.83 Game sebelum diganti modeling-nya
Ikuti langkahnya sebagai berikut :
- Buat modeling pesawat di 3D Max atau blender, atau anda dapat mencari model yang gratis di Internet.
- Export model pesawat menjadi format*.fbx, misalnyaSimpelShip.fbx
- Simpan kedalam folderAssetsbersama material yang dipakainya.
- Klik Cube, lalu pilih Mesh (ingat kuncinya di mesh ini !) kita akan mengganti mesh cube menjadi mesh pesawat.
- GanticubemenjadipolySurface1
Gambar 2.85 penggantian mesh cube menjadi pesawat (polysurface)
- Langkah penting selanjutnya adalahsesuaikan ukuan pesawat.
- Laluhapusbox colliderdi jendelaInspectordenga caraklik kanan>remove
Klik untuk mengganti material Klik untuk mengganti mesh Sesuaikan ukuran pesawat
- Tambahkanmesh colliderdengan cara klikcomponent > physics > mesh collider.Artinyabox collidersudahtidak dipakai lagi diganti menjadimesh collideruntuk deteksi tumbukkannya, karena obyeknya sudah diganti dari
box (cube)menjadipesawat.
Urusan mengganti model sudah selesai, tahap selanjutnya yaitu menambahkan simulasi benda-benda angkasa lainnya dengan partikel. Caranya :
- Klik dua kali scenelevel1
- KlikGame Object > Create Other > Particel Systems
- Atur parameter pada jendelainspectorsbb :
Gambar 2.86 Menambahkan partikel di level1 (area permainan)
Polesan terakhir adalah menambahkan GUI Texture di setiap scene. Langkahnya adalah :
- Buat tiga buah gambar di photoshop dengan ukuran 1024 x 768 pixel sebagai berikut, simpan dalam format*.jpeg.
- Gambar ini hanya contoh saja, Anda dapat membuat versi lain yang lebih bagus !
Selanjutnya adalah simpan ketiga gambar tersebut di folder Assets. Untuk memasukkan tekstur kedalamscene, ikuti langkah sbb :
- Klik dua kalisceneAwal
- KlikGame Object > Create Other > GUI Texture
Gambar 2.88 Menambahkan GUI Texture
- KlikTexturedi Jendelainspector, lalu pilih file awal.jpeg. - Ubahscalemenjadi x = 1 dan y = 1
- Selesai !
Klik disini
Pilih texture awal.jpeg