Mudah Membuat Game dengan Unity3D
12
Modul Membuat Game
dengan Unity 3D Engine
Tutorial step by step dari nol hingga mahir
(2)
Donasi
50% buat Anak Yatim
Yth. Pembaca...
Tutorial ini bersifat
free...
silahkan dibagikan ke semua yang
membutuhkannya...Jika tutorial ini memberikan manfaat
dan menambah pengetahuan pembaca semua, lalu anda
berniat mau menyisihkan sebagian rejekinya untuk
berdonasi sebagai salah satu bentuk apresiasi...Silahkan
melalui rekening BCA 008 043 3476 an Deni Kurnia.
Jazakumullohu Khoir...
(3)
Bab 1
MODUL TINGKAT DASAR
1.1. InstalasiUnity3D Game Engine
Pernahkan Anda bermain game ? Kalau pernah, pernahkah berpikir untuk mengetahui bagaimana cara membuatnya ?
Nah, saat ini banyak tools/software yang dipakai untuk membuat sebuah game. Salah satusoftwaretersebut adalahUnity3D.
Unity3D merupakan salah software game development yang lengkap. Source-nya dapat di-download melalui tautan http ://unity3d.com . Kita dapat menggunakan versi trial-nya untuk mengeksplorasi fitur-fitur apa saja yang terdapat dalam
softwareini.
Catatan :
Pada modul ini, penulis menggunakan Unity3D versi 3.4.05. Anda dapat menggunakan versi terbaru dengan proses instalasi yang kurang lebih sama dengan versi yang dipakai pada modul ini.
Untuk memahami proses instalasiUnity3D, ikuti langkah-langkah sebagai berikut : 1. Setelah proses download selesai. Klik folder tempat Unity3D tersebut di
letakkan. Lalu pilih filesetup.exe
(4)
Gambar 1.1 Welcome Setup Unity 3.4
2. PilihNext
(5)
3. PilihI Agree>Next,lalu pilihoptionseperti gambar 1.3
Gambar 1.3 Choose Components
4. Pilih folder tempat instalasi, tekanInstall
(6)
5. Tunggu sampai proses selesai dan muncul jendela sepert gambar 1.5
(7)
1.2. MemahamiUser Interface Unity3D
Pada saat membukaUnity3D, maka akan muncul tampilan sebagai berikut :
Gambar 1.6 Welcome Screen Unity
Untuk sementara Welcome Screen ini anda close dulu saja, agar kita langsung menuju ke jendela kerjaUnityseperti gambar 1.7
(8)
Secara garis besar, area kerja Unity3D dibagi menjadi 6 bagian utama sebagai berikut :
1. Scene
Gambar 1.8 Scene View
Scene adalah tempat ditampilkannya seluruh asset yang terdapat dalam jendelaProject View(lihat penjelasanProject View).
Lalu apa yang disebut denganasset?
Asset merupakan komponen yang digunakan untuk membangun
project/game. Di dalamassetini biasanya tersusun dari beberapafolder yang didalamnya tersimpanmodel,texture,image,material,script, dll.
2. Game
Game adalah tempat ditampilkannya aplikasi yang dibuat di Scene View. Ketika anda mengaktifkan jendela game, maka game/project yang anda buat dapat di jalankan di jendela game view ini. Coba sekali lagi bedakan antara
(9)
Gambar 1.9 Game View
3. Project
JendelaProjectadalah tempat semuaassetditampilkan.
(10)
Didalam jendelaproject,Unitymenyediakan fasilitas membuat : - folder
- Javascript
- C# Script
- Boo Script
- Shader
- dst.(lihat gambar 1.10)
Caranya, anda tinggal klik menu create di jendela project, lalu akan muncul sub menu seperti gambar 1.10. Penjelasan fasilitas ini akan dijelaskan pada Bab 2 (modul tingkat menengah).
4. Hierarchy
Hierarchy / hirarki merupakan tempat beradanya game object pada scene
yang sedang aktif. Ketika kita berpindah scene, maka komponen dalam
hierarchyakan berubah mengikuti scene yang sedang aktif. Coba perhatikan gambar 1.11
(11)
5. Inspector
Inspector adalah properties-nya suatu game object dalam unity. Contoh : apabila kita memilih salah satugame object pada jendelaProject, maka akan tampil parameter dan informasi lainnya diInspector.
(12)
6. Toolbar
Toolbar Unity3D terdri dari lima bagian utama, yaitu :
1. Transform Tool
Digunakan untuk menggeser, memutar dan mengubah ukuranobject.
Contoh penggunaantransform tool:
- Buatobject cubedengan cara pilihcreatedihierarchy, pilihcube; - Move the selected object :geser objekcubepada sumbu x, y atau z;
Gambar 1.13 Move the selected object button
- Lalu lihat bagianinspector, amati perubahan nilai pada koordinat x, y atau z.
(13)
Gambar 1.13 Perubahan nilaiPositionketikacubediubah posisi koordinatnya.
2. Transform Gizmo Toggle
Toolbar ini biasanya dipakai untuk mengatur sudut pandang koordinat pada Scene View, misalnya :
- Center
Menempatkan koordinat pada tengah obyek terpilih/aktif. Akan kelihatan perubahannya saat kita memilih lebih dari satu obyek.
(14)
- Pivot
Menempatkan koordinat pada titik pivot salah satu obyek ketika lebih dari satu obyek terpilih.
Gambar 1.15 Posisi koordinat ada pada cube, saat kedua obyek diseleksi.
-Local
Posisi koordinat x, y, z pada obyek terpilih/aktif, sehingga ketika obyek dirotasi maka posisi x, y, z akan berubah. Artinya koordinat obyek terpilih relative terhadap koordinatsceneutama/Scene View.
(15)
-Global
Posisi koordinat x, y, z mengikutiScene View
Posisi koordinat akan tetap walaupun obyek dirotasi, karena mengikuti koordinat global. Artinya koordinat obyek absolute terhadap koordinat
sceneutama/Scene View.
Gambar 1.17 Posisi koordinat global ada pada cube saat dirotasi
3. Play/Pause/Step Button
Berfungsi untuk play, stop dan go to next scene pada game. Anda tentu sudah familiar dengan button seperti ini.
4. Layout Drop-Down
(16)
7. Menu
Unity3D memiliki menu utama seperti software pada umumya. Menu tersebut dapat dilihat pada gambar 1.18
Gambar 1.18 Menu Standar Unity versi 3.4
Penjelasan fungsi fungsi menuUnityakan dibahas pada bagian tutorial membuatgamedi akhir bab 2 dan awal bab 3. Setelah mengikuti tutorial tersebut, anda dengan sendirinya akan memahami fungsi menu padaUnity
secara keseluruhan.
1.3. Membuat, Menyimpan dan MengkompilasiProject
1.3.1 Membuat dan Menyimpan Project Baru
Membuat project baru : 1. KlikFile > New Project
(17)
2. PilihCreate
Gambar 1.20 Memilih folder Project Baru ditempatkan
Catatan :
Coba perhatikan, diatas button Create ada beberapa pilihan Import the following package, pilihan itu adalah standar package Unity yang memudahkan kita untuk membangun sebuah game. Untuk sementara biarkan saja dulu jangan dicentang/dipilih bagian tersebut. Kita akan memakainya pada bagian tutorial membuat game.
Menyimpan project baru : 1. KlikFile > Save Project
(18)
1.3.2 Membuat Scene Baru
Langkah membuat scene baru : 1. KlikFile > New Scene
Gambar 1.21 Membuat Scene Baru
Langkah menyimpanscene:
1. KlikFile > Save Scene, atauFile > Save Scene as
Gambar 1.22 Menyimpan Scene
2. Beri namascene1misalnya, lalu simpan di folder asset.
Catatan :
Dalam satuprojectbisa terdiri dari satuscene atau lebih, tujuannya kita bisa berpindah dari satu scene ke scene lain. Contoh penggunannya adalah levelingdalamgame,scene1untuklevel1,scene2untuklevel2, dst.
(19)
1.3.3. Mem-build game
Langkah yang paling penting setelah kita membuat project game adalah bagaimana game tersebut bisa di-compile/di-build sehingga dapat dimainkan orang lain.
Unitymenyediakan fasilitas mem-build gamedengan satu langkah cepat. Cara mem-build gamepadaUnityadalah sebagai berikut:
1. KlikFile> Build Setting
Gambar 1.23 Mem-build Game
(20)
Catatan :
Unitymenyediakan fasilitasbuild gamedengan enamplatformyang berbeda, diantaranya :
- Web Player
- PC and Mac Standalone
- Android
- iOS
- Xbox 360
- PS3
Jadi, sekali kita mendesain sebuahgame, maka kita bisa mem-buildkedalam enam platformyang berbeda. Menarik bukan ?
(21)
Bab 2
MODUL TINGKAT MENENGAH
2.1. Membuat Obyek Dasar(Game Object)
Unity menyediakan fasilitas membuat game object standar seperti cube, cylinder, capsule, plane, camera, particle, dan light dll. Adapun game object yang memiliki tingkat kompleksitas yang tinggi, seperti model manusia dan hewan dapat dibuat di
software lain seperti Blender, 3D Max atau Maya. Selanjutnya model tersebut
di-importolehUnitymenjadi game objectdan disimpan sebagaiasset. Tahapanimport assetini akan dijelaskan pada tutorial membuatgame 3Ddi awal bab 3.
Untuk memulai membuat obyek dasar seperti cube, langkahnya adalah sebagai berikut :
(22)
Gambar 2.2 Cube
2.2. Menggeser, memutar dan mengubah ukurangame object
Menggesergame object, dapat dilakukan dengan cara :
Melalui Scene View, klik button move the selected object,
kemudian klik salah satu koordinat (ditandai dengan anak panah merah untuk sumbu x, hijau untuk sumbu y dan biru untuk sumbu z). Lalu drag/geser dengan
(23)
Gambar 2.3 Menggeser game object Cube
Memutargame object, dapat dilakukan dengan cara :
Melalui Scene View, klik button rotate the selected object,
kemudian klik dandraguntuk memutar mengikuti sumbu yang sedang aktif (di-klik). Lihat perubahan nilai padaInspector.
(24)
Mengubah ukurangame object, dapat dilakukan dengan cara : Melalui Scene View, klik button scale the selected object,
kemudian klik dan drag untuk memperkecil dan memberbesar pada sumbu x, y atau z. Lihat perubahan nilai padaInspector.
Gambar 2.5 Mengubah ukuran game object Cube
Selain ketiga cara diatas, menggeser, memutar dan mengubah ukuran game object, dapat dilakukan melalui jendelaInspector. Coba perhatikan gambar 2.6
Gambar 2.6. Menggeser, memutar dan mengubah ukuran melalui inspector
(25)
Ada tiga bagian utama pada highlightgambar 2.6, yaitu position, rotation dan scale. Coba ubah-ubah nilai pada sumbu x, y atau z, lalu perhatikan perubaan pada game object-nya. Selamat mencoba!
2.3. MemahamiCamera
Camera adalah bagian penting bagaimana suatu game ditampilkan kepada user.
Unitymenyediakan fasilitas membuatcameradengan langkah : Klik GameObject > Create Other > Camera
(26)
Gambar 2.7. Camera Preview saat Camera sudah dibuat
2.4. MembuatMaterialdan Meng-import Texture
Seperti halnya software 3D lain, Unity pun menyediakan fasilitas membuat material standar berupa warna. Untuk material yang kompleks seperti tekstur pohon, kulit dll, Unity menyediakan fasilitas importdarisoftwarelain.
Langkah membuat material padaUnityadalah sebagai berikut : 1. Klik Asset > Create > Material
Secara defaultpada jendelaProjectakan terbentuk material baru dengan nama
New Material, silahkan ubah nama dengan nama cubeMaterial misalnya seperti pada gambar 2.9
(27)
Gambar 2.8. Membuat material
Gambar 2.9. Mengubah nama material
2. Klik cubeMaterial, perhatikan jendela Inspector, terdapat properties warna yang bisa kita edit.
(28)
Gambar 2.10. Mengubah warna material
4. Drag cubematerial dari jendela Project ke Cube di jendela Hierarchy,
sekarang warnacubemenjadi merah sesuai denganmaterialyang di-drag.
(29)
Setelah anda dapat membuat material dengan Unity, sekarang mari kita membuat material darisoftwarelain. Langkahnya adalah sebagai berikut :
1. BukaSoftware Adobe Photoshop
2. Buat file500x 500 pixel
3. Buat material seperti dibawah ini, atau anda bisa mencari distockfotoonline
Gambar 2.12. Material dengan nama woodgrain.jpg
4. Save ke folderAssets seperti pada gambar 2.13 , sehingga nanti akan muncul di JendelaInspector(gambar 2.14)
(30)
Gambar 2.14. Material muncul di jendelaProject
5. Drag material dari jendelaProjectkecubedi jendelaHierarchyseperti gambar 2.15. Lihat perubahan material yang terjadi padacube!
Gambar 2.15. Pemberian material woodgrain pada cube
drag
[Type a quote from the document or the summary of an interesting point. You can position the text box anywhere in the document. Use the Text Box Tools tab to change the
formatting of the pull quote text box.]
(31)
Gambar 2.16. Jendela inspector saat bagianshaderdi-klik
2.5 Meng-import Sounds (Audio Components)
Sebuah proyek game tentu akan banyak memerlukan suara/sound. Pada Unity disebutAudio components. Secara umum dibagi dua, yaitu :
- Audio Listener, komponen yang dimasukkan kedalam kamera/player agar ketika game dimainkan, player mampu menangkap suara yang ada pada game object.
- Audio Source,suara dimasukkan kedalamgame object sehingga suara berada
Default Shader
(32)
Cara memberikan suara(Audio Listener)adalah sebagai berikut : 1. Klik Main Camera
2. Klik Component > Audio > Audio Listener (gambar 2.17)
Gambar 2.17. Membuat Audio Listener pada Main Camera
3. Perhatikan jendela Inspector, lihat perubahan yang terjadi.
(33)
Catatan :
Secara default Audio Listener sudah terdapat pada Main Camera pada saat anda membuatprojectbaru danscenebaru pada Unity. Langkah diatas untuk tambahan pengetahuan agar anda mengetahui proses pembuatanAudio Listener.
Setelah anda memahami cara membuat Audio Listener, berikutnya adalah cara memberikan suara(Audio Source)pada suatugame object
Langkahnya adalah sebagai berikut :
1. Siapkan sumber sound yang akan di-import seperti contoh pada gambar 2.17 (atau anda bisa mengunduh yang gratisan di internet)
Gambar 2.17. Menyiapkan folder sumber sound
2. Copy ke folderAssetpada projectanda. Pada folderAssetsini anda sebaiknya membuat folder baru dengan nama Suara, supaya file pada Assets tersusun rapi/terstruktur.
(34)
3. Kembali ke project di Unity Anda, lihat pada jendela project, anda akan mendapatkan tampilan seperti pada gambar 2.19, yaitu folder suara dan suara laser01 sudah muncul di jendelaProject
Gambar 2.19. Tampilan pada jendela Project
4. Drag LASER01 pada jendela Project keCubedi JendelaHierarchy
Gambar 2.19. Tampilan pada Inspector saat sound LASER01 di -dragkecube
(35)
5. Perhatikan perubahan tampilan jendela Inspector dan jendela scene pada
cube, sekarang cube memiliki properties Audio Source. Ada parameter yang bisa diadjustoleh anda. Silakan dicoba !
Gambar 2.20. Tampilan pada cube
6. Centang Loop pada jendela Inspector di bagian Audio Source, agar suara dijalankan secara berulang-ulang.
7. Untuk mencoba bahwa cube sudah memiliki suara, klik tombol play
lalu perhatikan apa yang terjadi.
2.6 Membuat Partikel
Partikel biasanya dipakai untuk membuat efek ledakan peluru pada game
menembak/perang, semburan asap knalpot pada game balap, atau efek pukulan pada game pertarungan. Pada prakteknya, banyak penggunaan efek partikel ini. Sebagai standargame engine, tentuUnitymenyediakan fasilitas ini. Mari kita ikuti langkahnya.
1. KlikGame Object> Create Other > Particle System
Ada icon speaker
(36)
2. Perhatikan yang terjadi padaScene View, lihat gambar 2.22
Gambar 2.22. Partikel yang sudah dibuat pada jendelaScene View
3. Arahkan mouse anda ke jendela Inspector, disini kita akan mengatur parameter partikel sesuai denga tipe yang kita butuhkan.
4. Pada contoh ini akan dimisalkan membuat partikel untuk ledakan api. Maka, perhatikan gambar 2.23 parameter apa saja yang di atur nilainya.
Gambar 2.23. Mengubah nilai dan warna paritkel padaInspector
Ikuti nilai yang tertera pada gambar ini
Klik untuk mengganti warna
(37)
5. Perhatikan partikel akan berubah seperti gambar 2.24 pada jendelaScene
Gambar 2.23. Mengubah nilai dan warna paritkel padaInspector
2.7 MemahamiPrefabs
Prefab adalah salah satu Assets yang dapat digunakan berkali-kali. Prefab
terletak pada Project View dan dapat dimasukkan kedalam Scene View dengan cara di-drag. Selain itu, prefab pun dapat dikaitkan/ di-link-kan dengan game objectlain.
Contoh aplikasinya, misalnya untuk membuat sebuah peluru yang ditembakkan pistol, kita hanya perlu sekali saja membuat game object berupa peluru, lalu peluru tersebut dijadikan prefab, kemudian prefabpeluru diletakan pada ujung pistol, lalu nanti ketika mouseditekan, maka prefab peluru dapat ditembakkan berkali-kali. Proses ini disebut instatiate. Lebih detail aplikasinya akan dijelaskan pada sub bab membuatgame.
(38)
Langkah membuatprefabadalah : 1. KlikAsset> Create > Prefab
Gambar 2.23. MembuatPrefab
2. Secara default, Unity akan memberikan nama New Prefab, anda bisa menggantinya dengan nama lain pada jendela Inspector. Penamaan ini untuk memudahkan saat prefabdi-loadolehscript.Perhatikan gambar 2.24
(39)
3. Buatcubepada Jendelahierarchy, laludrag cubeke dalamNew Prefab. New Prefabini, coba ganti dengan namaPrefabCube Lihat gambar 2.24.
Catatan :
Penamaan PrefabCube ini hanya contoh saja, anda dapat menggantinya dengan nama lain.
Gambar 2.24 Men-drag cubekedalamPrefabCube
4. Setelah cube di-drag ke PrefabCube, anda tidak memerlukancube lagi, oleh karena itu hapus cubeyang ada di jendela Scene dengan cara klik lalu tekan
deletepadakeyboard.
5. Sekarang anda memiliki PrefabCube yang bisa di-drag sebanyak-banyaknya kedalam JendelaScenetanpa harus membuatcubesatu persatu!.
2.8 Membuat Animasi
Animasi dapat dilakukan dengan dua cara, yaitu :
1. Melalui perubahankeyframe (postion, rotation, scale)tanpascripting. drag
(40)
Pada bagian ini akan dijelaskan animasi tanpa scripting, untuk animasi denganscripting akan dibahas pada sub babscripting.
Catatan :
dalam contoh dibawah ini, animasi yang dibuat menggunakangame object cube
Langkah membuat animasinya adalah sebagai berikut : 1. KlikCreate> Game Object > Cube
2. KlikWindows > Animation (Perhatikan gambar 2.25)
3. Klik record button, simpan dengan nama New Animation (Perhatikan gambar 2.26)
Gambar 2.25 JendelaAnimation
Gambar 2.26 Save Animation
klik
(41)
4. KlikAdd Keyuntuk mengunciframe
Gambar 2.27 MengunciFrame
5. Gesercubepada sumbu x, y atau z (lihat gambar 2.28)
Gambar 2.28 Menggeser Frame
geser
(42)
6. Ingat, yang anda geser adalah garis yang berwarna merah. Setiap garis merah digeser ke kanan pada jendela animation, maka disaat yang sama apabila posisi cube di jendela scene view digeser, akan terbentuk
keyframebaru. Coba perhatikan gambar 2.30
Gambar 2.30 Menggeser Cubepada sumbu x untuk membuat animasi
7. Untuk melihat animasi yang sudah dibuat coba tekan button play pada jendelaAnimation.
2.9 MembuatLighting
Lighting/pencahayaan adalah salah satu komponen yang mendukung terhadap skenario suatugameagar tampak lebih realistis.
Unitymenyediakan tiga jenis pencahayaan yaitu : - Directional Light
- Point Light
- Spotlight
Untuk menjelaskan perbedaannya, perhatikan langkah berikut :
1. Directional Light
Langkah membuatDirectional Light: - KlikGameObject > Create Other > Cube
- KlikGameObject > Create Other> Directional Light
Perhatikan Gambar 2.31 dan 2.32
(43)
Gambar 2.31 MembuatDirectional Light
- Gunakan Move the Selected Object untuk menggeser
Directional Light ke sumbu +y (coba geser-geser aja sembarang posisi dahulu).
(44)
Gambar 2.32 MenggeserDirectional Light
- GunakanRotate the Selected Object untuk menggeserDirectional
Lightpada sumbu x, y atau z . Lihat perbedaan yang terjadi pada gambar
Gambar 2.33 MemutarDirectional Light
Kalau anda sudah mengerti cara membuat Directional Light, tentu akan mudah membuatPoint LightdanSpotlightseperti dibawah ini bukan ?
(45)
2.10 MenerapkanPhysicspadaGame Object
Physics pada Unity diantaranya dipakai untuk mengontrol gravitasi, gaya dan tumbukan (collision)pada suatu game object. Unity memiliki bawaan NVIDIA PhysX Physic engine.
Padasub-menu Physicterdapat pilihan seperti gambar 2.35 :
Gambar 2.35 Sub-menu padaPhysics
1. Rigidbody
Rigidbody merupakan sub-menu physics yang salah satu fungsinya digunakan untuk mengontrol gravitasi pada game object. Untuk mencoba menerapkan rigidbody ini, langkahnya adalah sebagai berikut :
- Buat Objectcube,GameObject> Create Other > Cube
- Buat Objectplane,GameObject> Create Other > Plane
(46)
Gambar 2.36 MembuatCube dan Plane
- Terapkan Physics pada cube (pastikan posisi cube melayang diatas plane),
langkahnya : KlikCube, klikComponent> Physics> Rigidbody
- Tempatkan posisi Main Camera seperti gambar 2.37. Sehingga pada saat
di-playpergerakan jatuhnyacubekeplaneakan terlihat.
Gambar 2.37 Menggeser PosisiMain Camera
cube plane
(47)
- KlikGame View, Lalu tekanbutton Play
- Perhatikan apa yang terjadi ? Kalau langkah anda betul, seharusnya cube
akan jatuh secara realistis menimpaplane.
Catatan :
Pada jendela Inspector, secara default properties Use Gravity di-checklist. Artinya ketika diterapkan rigidbody pada game object, secara otomatis berlaku gravitasi pada obyek tersebut.
Gambar 2.38 propertiespadaInspector pada saat diterapkan rigidbody padaGame Object
2. Kinematic Rigidbodies
Untuk keperluan tertentu, kita dapat menon-aktifkan properties Use Gravity. Kita dapat menerapkan rigidbody yang lain dengan cara men-checklist Is Kinematic. Kinematic Rigidbodies tidak dipengaruhi oleh gaya, gravitasi dan tumbukkan.
Use Gravity aktif
(48)
Salah satu aplikasikinematicini yaitu pada prefabpeluru yang ditembakkan oleh pesawat yang dikontrol melalui script. Lebih lanjut cara menerapkannya dapat dilihat pada tutorial membuatgamedi sub bab berikutnya.
3. Collider
Collidermerupakan komponenphysicyang dipakai untuk mengontrol tumbukan antargame object. Secaradefault Unitymenyertakancolliderketika kita
membuatcube, sphere, capsule dan plane.Namun, untuk obyek(game object)
yang di-importdarisoftware modellinglain, maka kita perlu menambahkan
collider terhadap obyek tersebut secara.Unitymenyediakan lima tipecollider
sebagai berikut :
- Box,digunakan untuk obyek berbentuk kubus/kotak - Sphere,digunakan untuk obyek berbentuk bola - Capsule,digunakan untuk obyek berbentuk kapsul
- Mesh,digunakan untuk obyek yang memilikimeshyang kompleks - Wheel,digunakan untuk obyek berbentuk roda
Langkah membuatcollideradalah sebagai berikut : 1. KlikComponent> Physics> Box Collider
2. Perhatikan perubahanpropertiespadaInspector(gambar 2.39)
(49)
Catatan :
Ketika membuatgame objectdasar padaUnity, secaradefault collider sudah disertakan padagame objecttersebut. Object dasar tersebut adalah :
- Cube
- Sphere
- Capsule
- Cylinder
- Plane
2.11GUI (Graphical User Interface)
GUI adalah komponen antarmuka yang diperlukan untuk berinteraksi antara
user dengan program komputer. GUI dapat berbentuk teks, gambar, maupun
button. Pada bagian ini akan dijelaskan tiga jenis GUI padaunity:
1. GUI Text
Yaitu teknik menampilkan teks agar muncul di layar pada saat game
dijalankan.
2. GUI Texture
Yaitu teknik menampilkan gambar/image agar muncul di layar pada saat
gamedijalankan.
3. GUI Basic Control
Yaitu teknik menampilkan GUI yang dikontrol melalui script agar muncul di layar pada saat game dijalankan. Aplikasinya misalnya button untuk perpindahan menu, perpindahan level, atau GUI interaktif lainnya.
Langkah membuatGUI Textadalah sebagai berikut :
1. KlikGameObject > Create Other > GUI Text
(50)
Gambar 2.40 MembuatGUI Text
2. Edit Tulisan GUI Textdan Text menjadi Selamat Datang. Perhatikan tulisan di
Scene View, berubah bukan ?
Gambar 2.41 Mengedit tulisanGUI Text
(51)
Langkah membuatGUI Textureadalah sebagai berikut :
1. KlikGameObject > Create Other > GUI Texture
Perhatikan gambar 2.42!
Gambar 2.42 Membuat GUI Texture
2. Buat file *.jpg (misalnya texture.jpg) ukuran 800 x 600 piksel di Adobe Photoshop, lalusavedi folderasset, sehingga muncul pada jendela project.
(52)
Gambar 2.43 Memasukkan file Texture.jpg ke folder Assets
Gambar 2.44 Meng-edit Texture sizepadaInspector 3. Pilih/klikUnity Watermark-smalldi jendelaHierarchy
4. Dragtexture.jpgdi jendelaprojectke jendelaInspector(lihat gambar 2.44) 5. Klik Pixel Inset pada panel Inspector, lalu ubah ukuran Width : 800 dan
Height : 600. Perhatikan perubahan yang terjadi padaGame View.
Edit Width dan Height drag
(53)
6. Apabila texture tidak berada di tengah, atur nilai position x dan y pada jendelaInspector(gambar 2.44)
7. Apabila parameter yang diatur benar, kurang lebih texture akan tampil pada
Game View seperti gambar 2.45.
Gambar 2.45 TampilanGUI TexturepadaGame View, setelah diatur parameternya.
Sekarang anda sudah memahami cara membuatGUI TextdanGUI Texture.
Salah satu aplikasinya adalah untuk opening menu atau perpindahan antar scene
padagame.
Pada bagian akhir sub pokok bahasan GUI, akan dijelaskan beberapa langkah sekaligus contoh membuatGUIdenganJavascript. Ikuti langkahnya sebagai berikut :
1. KlikAssets > Create > Javascript
2. Ubah nama default NewBehaviourScriptmenjadi MenuScript(nama file boleh bebas)
(54)
Gambar 2.46 MembuatScriptdenganJavascript 4. Ketikkanscriptsebagai berikut :
/* Contoh Script GUI untuk leveling Game */
function OnGUI () {
// Membuat Background Kotak
GUI.Box (Rect (10,10,100,90), "Menu Game");
// Membuat button pertama. Jika ditekan, maka akan dipanggil Level 1
if (GUI.Button (Rect (20,40,80,20), "Level 1")) { Application.LoadLevel (1);
}
// Membuat button kedua
if (GUI.Button (Rect (20,70,80,20), "Level 2")) { Application.LoadLevel (2);
} }
PenjelasanScript:
function OnGUI ()
merupakan fungsi untuk mengontrolGUIpadaUnity. Setiap kali anda akan membuatGUIdenganscript, maka fungsi ini harus dipanggil.
GUI.Box (Rect (10,10,100,90), "Menu Game");
merupakan perintah membuat kotak dengan aturan 10= jarak dari sumbu x ke sisi kotak, 10=jarak dari sumbu y ke sisi kotak, 100 = panjang kotak dan 90 =lebar kotak.
if (GUI.Button (Rect (20,40,80,20), "Level 1")) { Application.LoadLevel (1);
Merupakan perintah membuatbutton dengan aturan 20= jarak dari sumbu x ke sisibutton, 40=jarak dari sumbu y ke sisi button, 80 = panjangbuttondan
(55)
20 = lebar kotak. Kemudian tulisan"Level 1" merupakan tulisan padabutton,
dan perintah Application.LoadLevel (1); merupakan perintah untuk
memanggilscene/level 1.
if (GUI.Button (Rect (20,70,80,20), "Level 2")) { Application.LoadLevel (2);
Perintah untuk membuat button kedua dan saat di-klikmaka akan memanggil
scene/level 2.
Catatan :
Pada saat membuatgame, tentu anda akan mempunyai banyakscene, sehingga GUI seperti ini diperlukan untuk perpindahan antarscene.
5. Buatgame objectbaru dengan cara klikGameObject> Create Empty
6. Drag scriptyang dibuat(MenuScript)ke dalamGameObjectdi jendela
Hierarchy
7. Untuk melihat hasilnya, coba jendela kerja dipindahkan ke Game Viewlalu tekanPlay.
(56)
2.12. Membuat Game 2D : Petualangan Angkasa !
Salah satu perbedaan antara game 2D dengan 3D terletak pada posisi game objek terhadap sudut pandang pemain. Pada game 2D posisi game object berada pada koordinat x dan y saja, sehingga pemain hanya dapat menggerakan game object ke kanan, kiri, atas atau bawah. Berbeda dengan game 3D, pemain seolah-olah dapat masuk kedalam ruang permainan (sumbu z) dan leluasa menggerakan game object
ke depan, belakang, kiri, kanan, atas maupun bawah.
Pada sub bab ini, akan dijelaskan tahapan membuat game 2D sederhana. Diharapkan apabila sudah memahami konsep game 2D, maka anda akan mudah mengembangkangame 3D.
Tema game 2D ini adalah petualangan angkasa. Skenarionya adalah, player diharuskan menghancurkan serangan batu luar angkasa dengan cara menembakkan peluru dari pesawat milik player. Apabila peluru mengenai batu luar angkasa, maka nilai akan bertambah 10. Nilai dibatasi sampai 1000, sehingga bila mencapai 1000, makaplayer dianggap menang. Selanjutnya, apabila batu mengenai pesawat player, maka nyawa akan berkurang. Nyawa playerdisediakan 3 nyawa, sehingga kalau tiga kali kena batu, maka permainan berakhir(game over).
Mari kita mulai.
A. Membuat Cube, Directional Light dan Mengatur kamera
1. KlikFile > New Project
2. Simpan di foder misalnyac:\Game Petualangan Angkasa
3. PilihCreate
(57)
4. KlikFile > Save Scene. Beri namaLevel1
5. KlikGame Object > Create Other > Cube
6. KlikMain Camera, Ubah parameter padaInspectorsbb : -Background: Pilih warna hitam
-Projection: PilihOrthographic
-Size: 5 -Transform
Position: x = 0, y = 0 dan z= - 3
Rotation: x = 0, y = 0 dan z = 0
Scale: x = 1. Y = 1 dan z = 1
(58)
7. KlikCube, lalu edit nilai pada jendela Inspectorsbb :
Transform
Position: x = 0, y = -4 dan z= - 3
Rotation: x = 0, y = 0 dan z = 0
Scale: x = 1. Y = 1 dan z = 1 8. KlikAssets > Create > Material
9. Ubah dengan namaMaterialPlayer,pilih warna kuning 10. DragMaterialPlayerkedalamCube
11. KlikGameObject > Create Other > Directional Light
12. Lihat hasilnya padaGame Viewseperti gambar 2.49
Gambar 2.49 Tampilan pada Game View
Catatan :
Untuk tahap awal, game object cube pada gambar 2.49 diasumsikan sebagai pesawat player yang dapat di gerakkan ke kanan dan ke kiri. Nanti, pada bagian akhir tutorial, cube ini akan diganti dengan mesh berbentuk pesawat, sehingga game tampak lebihreal.
Agar cube/pesawat dapat dikontrol oleh keyboard, maka kita harus memanggil input keyboardmelaluiscript.
(59)
MemberikanScript ControlpadaCube
1. KlikAssets > Create > Javascript
2. Ubah menjadiScriptPlayer
3. DragScriptPlayerkedalamCube
Gambar 2.50 memasukkanScriptPlayerkedalamCube 4. Klik dua kali, kemudian tuliskanscriptsebagai berikut :
(60)
5. Coba Play ! apakah cube bergerak ke kiri dan ke kanan ? kalau tidak , klik
cube, kemudian lihat bagian Inspector, lalu ubah Player Speed menjadi 2 (coba ubah-ubah nilainya antara 0 sd 10, lalu tekan Play, bagaimana hasilnya?) .
Gambar 2.52Mengubah Player Speed pada Properties Jendela Inspector 6. Bagaimana, apakahcubesudah bisa digerakkan ?
7. Kalau pergerakkan cube kurang halus, maka kita dapat menambahkan script sbb :
* Time.deltaTime ,sehinggascriptberubah menjadi :
Gambar 2.53 Penambahanscript Time.deltaTime agar pergerakkan menjadi halus dan lebih realistis.
8. Kalau pergerakkan terasa lambat, maka ubah kembaliPlayer Speed menjadi = 10padaInspector. Bagaimana ? sudah realistis bukan ?
9. Selanjutnya KlikComponent > Physic > Rigidbody
10. CentangIs Kinematicdan Non-aktifkanUse Gravitypada jendelaInspector
Player Speed = 2
Penambahan script
(61)
Catatan :
Untuk mengetahui bagaimana Unity mengelola input, baik dari keyboard, mouse, joystick, dll. Lakukan langkah :
- KlikEdit > Project Setting > Input
Gambar 2.54Setting InputpadaUnity
Perhatikan !
semua yang tercantum dalam Inspectoradalah parameter input yang dapat dipanggil melaluiscript.
B. Menampilkan Skor dan Nyawa Pemain (Player
Pada bagian ini, kita akan menampilkan skor dan nyawa player yang tersedia. Langkahnya adalah sebagai berikut :
- Klik dua kaliScriptPlayer.js
(62)
Sehinggascript berubahmenjadi seperti gambar 2.56
Gambar 2.56 Tampilanscriptsetelah ditambahkan deklarasi variable
- Klik cube, lalu edit pada bagian inspector. Perhatikan, sekarang ada penambahan variable Player Lives dibawahPlayer Speed. Ubah nilainya dari
0 menjadi 3.Artinya, nyawaPlayerdi-setmenjadi 3.
Gambar 2.57 Men-set nyawa player menjadi 3
- Lalu mengapa variable Player Score tidak muncul ? padahal kita sudah mendeklarasikannya pada gambar 2.56. Hal ini karena kita mendeklarasikanya sebagaistatic var!
var
(63)
Untuk menampilkan skor dan nyawa pada GUI, ikuti langkah sebagai berikut : - Klik dua kaliScriptPlayer.js
- Tambahkan script sbb :
Sehingga tampilanScriptPlayer keseluruhan adalah sebagai berikut :
Gambar 2.58 Tampilan keseluruhanPlayerScript.js
(64)
Gambar 2.58 Tampilan Skor dan Nyawa pada Game View
Permasalahan :
Permasalahan pertama adalah Cube/pesawat hanya dapat bergeser ke kiri dan ke kanan, bagimana jika kita ingin menggeser ke atas dan ke bawah ? Script apa yang harus ditambahkan ?
Apabila anda memahami bagaimana cube dapat digeser ke kanan dan ke kiri, maka dengan mudah kita dapat membuat script agar cube dapat digeser ke atas dan ke bawah. Caranya adalah panggil input vertikal, lalu beri perintah menggeser cube. Lebih jelasnya lihat perhatikanscriptsbb :
// memanggil input keyboard pada sumbu vertical
naik = (PlayerSpeed * Input.GetAxis("Vertical")) * Time.deltaTime ;
// menggerakan player ke atas dan ke bawah
transform.Translate(Vector3.up*naik);
Mudah bukan ?
Sekarang dengan leluasa anda dapat menggerakan cube ke kiri, kanan, atas dan bawah.
(65)
Permasalahan kedua, ketika kita menggeser cube ke kanan sampai melewati area permainan, maka cube akan hilang, hal in disebabkan karena koordinatnya terus bergeser. Kasus serupa terjadi juga ketika kita menggeser habis ke kiri, ke atas maupun ke bawah. Oleh karena itu masalah ini harus dipecahkan, karena akan membingungkan pemain.
Pemecahannnya adalah sbb :
- Cek pada koordinat berapa ke samping kanan dan kiri (y), atas dan bawah (x) posisi cube hilang
- Anggap koordinat sudah didapatkan, lalu berikan scripttambahan seperti dibawah ini :
(66)
C. Membuat Peluru
Langkah selanjutnya adalah membuat peluru. Peluru dapat dibuat dengan menggunakan capsule atau sphere. Pada contoh ini peluru yang dibuat menggunakancapsule.
Langkahnya adalah sebagai berikut :
- Klik GameObject > Create Oher > Capsule
- Ubah pada jendelaInspectorsbb :
Transform
Position: x = 0, y = 0 dan z= 0
Rotation: x = 0, y = 0 dan z = 0
Scale: x = 0.2 Y = 0.2 dan z = 0.2 - KlikAssest > Create > Javascript
- Ubah namanya menjadiScriptPeluru
- DragScriptPelurukedalam Capsuledi jendelaHierarchy
- EditScriptmenjadi sbb :
Gambar 2.59 Script Peluru
- KlikCapsule, beri nilai Peluru Speed = 10pada jendela Inspector. Untuk lebih jelasnya lihat gambar 2.60
(67)
- KlikComponent > Physics > Rigidbody
- Lihat perubahan yang terjadi pada jendelaInspectorketikacapsulediberi
Physics > Rigidbody.
Gambar 2.60b mengaktifkan Kinematic pada jendela Inspector
- Unchecklist(jangan dicentang)Use Gravitydanchecklist(centang)Is Kinematic, karena padagame 2Dini gerak peluru tidak dipengaruhi gravitasi walaupun tetap dikontrol oleh scriptkapan peluru akan ditembakkan ke arah sumbu Y.
Catatan :
Script untuk peluru hampir sama dengan script untuk menggeser cube ke atas dan ke bawah. Perbedaannya, pada script peluru tidak memanggil fungsi input dahulu, sehingga ketika di-play peluru langsung bergerak ke atas tanpa menunggu input dari keyboard. Perhatikan script pada gambar 2.59 baris per baris !
Permasalahan :
Ketika di-play maka peluru akan terus bergerak sampai koordinat tak hingga. Hal ini tidak boleh terjadi, karena peluru hanya diperlukan untuk menembak batu luar angkasa di area layar yang kita settingsaja. Oleh karena itu lakukan langkah sebagai berikut :
- Klik Layout menjad 2 by 3, tujuannya agar kita memiliki jendela Scene View
danGame Viewyang terpisah.
Jangan dicentang
(68)
Gambar 2.61. Mengubah layout/jendela kerja Unity
- Geser Peluru diScene Viewkeatas arah sumbu Y (+)
- Perhatikan pada koordinat Y = berapa peluru hilang dari areaGame View? - Kalau langkah anda benar, peluru akan keluar dari area Game View pada
kisaran koordinat Y = 5.5
- Angka ini akan dipakai untuk pengecekkan kondisi sbb :
o Jika peluru > 5.5 maka hancurkan peluru (karena tidak diperlukan lagi)
Klik, pilih 2 by 3
Drag pada sumbu Y
Perhatikan peluru tidak Nampak di koordinat Y = berapa ?
(69)
Gambar 2.61. Tampilan padaScene View,Game ViewdanInspector
- Setelah kita mengetahui peluru tidak nampak di koordinat Y=5.5, maka buatlahscriptsebagai berikut :
Script ini memerintahkan kepada program agar peluru dihancurkan (destroy) jika sampai pada koordinat Y lebih besar atau sama dengan 5.5.
C. Membuat Prefab Peluru
Setelah kita berhasil membuat peluru, selanjutnya adalah kita akan menggunakan peluru tersebut berulang-ulang saat ditembakkan oleh pesawat(cube). Oleh karena itu, kita akan membuat peluru tersebut menjadi
prefab.
Langkahnya adalah sebagai berikut : - KlikAssets > Create > Prefab
- Ubah namanya dariNew prefabmenjadiPeluruPrefab
- DragCapsulekedalamPeluruPrefab
(70)
D. Menghubungkan PeluruPrefab dengan Player
Setelah proses pembuatan prefab peluru selesai, permasalahan kita selanjutnya adalah, bagaimana caranya supaya peluru dapat ditembakkan ketika ditekan salahsatu tombol di keyboard, misalnya tombolspacebar? Solusinya adalah pada ScriptPlayer harus dideklarasikan variable peluru tersebut, lalu dipanggil dan ditembakkan dengan script ketika spacebar
ditekan ! Proses ini disebutINSTANTIATE.
Langkahnya adalah sbb : - BukaScriptPlayer.Js
- Tambahkanscriptsebagai berikut : - KlikCubedi JendelaHierarchy
- DragPeluruPrefabkePelurudi JendelaInspector
Gambar 2.62 MenghubungkanPrefabPeluruke jendelaInspectorpadaGame Object Cube
(71)
Langkah berikutnya adalah menambahkan script agar PrefabPeluru tersebut dapat ditembakkan, langkahnya adalah sbb :
- Tambahkanscript untuk memanggilinput spacebarlalu menembakkannya.
- Coba Play ! kalau langkah anda benar, peluru akan dapat ditembakkan saat
spacebarditekan.
(72)
E. Menambahkan Audio Pada Peluru
Saat peluru ditembakkan, kurang lengkap rasanya kalau tidak ada suara peluru. Langkah memasukkan suara kedalam peluru adalah sebagai berikut :
- Cari suara format*.wavyang cocok untuk suara tembakan.
- Simpan di folderAssetdan sebaiknya buat folder baru dengan namasound
- KlikPeluruPrefab
- KlikComponent > Audio > Audio Source
- Drag sound ke dalam Audio Clip pada jendela Inspector (pada tutorial ini menggunakansounddengan namafilelaser14.wav
Gambar 2.64 memasukkan audio kedalamPeluruPrefab
- Tekan Play! Sekarang ketika ditekan spacebar untuk menembakkan peluru maka akan keluar suara. Menarik bukan ?
(73)
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
(74)
- 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
(75)
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
(76)
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
(77)
- 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
(78)
- 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
(79)
- 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)
(80)
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
(81)
Gambar 2.73 Men-drag ledakan kedalam ledakanPrefab
- Laludeleteledakandi jendelaHierarchy
- Langkah berikutnya adalahinstantiateledakkan terhadappeluruPrefab. - Klik dua kaliScriptPeluru.js
- Tambahkanscriptsebagai berikut :
drag
(82)
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 :
(83)
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 :
(84)
- 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
(85)
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
(86)
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 :
(87)
- 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 :
(88)
- 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 ? :
(89)
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
(90)
Supaya terlihat perbandingannya berikutcapture gamesebelum di tambahkan ketiga komponen diatas :
Gambar 2.83 Game sebelum diganti modeling-nya
(91)
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
(92)
- 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)
(93)
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 !
(94)
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
(1)
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
(2)
Supaya terlihat perbandingannya berikutcapture gamesebelum di tambahkan ketiga komponen diatas :
Gambar 2.83 Game sebelum diganti modeling-nya
(3)
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
(4)
- 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)
(5)
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 !
(6)
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