mudah membuat game dengan unity3d
TRANSCRIPT
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Donasi
50% buat Anak YatimYth. Pembaca...
Tutorial ini bersifat free...silahkan dibagikan ke semua yangmembutuhkannya...Jika tutorial ini memberikan manfaatdan menambah pengetahuan pembaca semua, lalu andaberniat mau menyisihkan sebagian rejekinya untukberdonasi sebagai salah satu bentuk apresiasi...Silahkanmelalui rekening BCA 008 043 3476 an Deni Kurnia.
Jazakumullohu Khoir...
Selamat Belajar!
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Bab 1MODUL TINGKAT DASAR
1.1. Instalasi Unity3D Game Engine
Pernahkan Anda bermain game ? Kalau pernah, pernahkah berpikir untukmengetahui bagaimana cara membuatnya ?
Nah, saat ini banyak tools/software yang dipakai untuk membuat sebuah game.Salah satu software tersebut adalah Unity3D.
Unity3D merupakan salah software game development yang lengkap. Source-nyadapat di-download melalui tautan http ://unity3d.com . Kita dapat menggunakanversi trial-nya untuk mengeksplorasi fitur-fitur apa saja yang terdapat dalamsoftware ini.
Catatan :
Pada modul ini, penulis menggunakan Unity3D versi 3.4.05. Anda dapatmenggunakan versi terbaru dengan proses instalasi yang kurang lebih samadengan versi yang dipakai pada modul ini.
Untuk memahami proses instalasi Unity3D, ikuti langkah-langkah sebagai berikut :
1. Setelah proses download selesai. Klik folder tempat Unity3D tersebut diletakkan. Lalu pilih file setup.exe
Lihat Gambar 1.1
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 1.1 Welcome Setup Unity 3.4
2. Pilih Next
Gambar 1.2 License Agreement
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
3. Pilih I Agree>Next, lalu pilih option seperti gambar 1.3
Gambar 1.3 Choose Components
4. Pilih folder tempat instalasi, tekan Install
Gambar 1.4 Pilih Folder tempat instalasi
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
5. Tunggu sampai proses selesai dan muncul jendela sepert gambar 1.5
Gambar 1.5 Proses instalasi selesai
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
1.2. Memahami User Interface Unity3D
Pada saat membuka Unity3D, maka akan muncul tampilan sebagai berikut :
Gambar 1.6 Welcome Screen Unity
Untuk sementara Welcome Screen ini anda close dulu saja, agar kita langsungmenuju ke jendela kerja Unity seperti gambar 1.7
Gambar 1.7 Jendela Kerja Unity3D versi 3.4
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Secara garis besar, area kerja Unity3D dibagi menjadi 6 bagian utama sebagaiberikut :
1. Scene
Gambar 1.8 Scene View
Scene adalah tempat ditampilkannya seluruh asset yang terdapat dalamjendela Project View (lihat penjelasan Project View).
Lalu apa yang disebut dengan asset ?Asset merupakan komponen yang digunakan untuk membangunproject/game. Di dalam asset ini biasanya tersusun dari beberapa folder yangdidalamnya tersimpan model , texture, image, material, script, dll.
2. GameGame adalah tempat ditampilkannya aplikasi yang dibuat di Scene View.Ketika anda mengaktifkan jendela game, maka game/project yang anda buatdapat di jalankan di jendela game view ini. Coba sekali lagi bedakan antaraGame View dengan Scene View!
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 1.9 Game View
3. Project
Jendela Project adalah tempat semua asset ditampilkan.
Gambar 1.10 Jendela Project
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Didalam jendela project, Unity menyediakan 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 submenu seperti gambar 1.10. Penjelasan fasilitas ini akan dijelaskan pada Bab 2(modul tingkat menengah).
4. HierarchyHierarchy / hirarki merupakan tempat beradanya game object pada sceneyang sedang aktif. Ketika kita berpindah scene, maka komponen dalamhierarchy akan berubah mengikuti scene yang sedang aktif. Coba perhatikangambar 1.11
Gambar 1.11 Hierarchy
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
5. InspectorInspector adalah properties-nya suatu game object dalam unity. Contoh :apabila kita memilih salah satu game object pada jendela Project, maka akantampil parameter dan informasi lainnya di Inspector.
Gambar 1.12 Inspector
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
6. ToolbarToolbar Unity3D terdri dari lima bagian utama, yaitu :
1. Transform Tool
Digunakan untuk menggeser, memutar dan mengubah ukuran object.
Contoh penggunaan transform tool :
- Buat object cube dengan cara pilih create di hierarchy, pilih cube;- Move the selected object : geser objek cube pada sumbu x, y atau z;
Gambar 1.13 Move the selected object button
- Lalu lihat bagian inspector, amati perubahan nilai pada koordinat x, yatau z.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 1.13 Perubahan nilai Position ketika cube diubah posisi koordinatnya.
2. Transform Gizmo Toggle
Toolbar ini biasanya dipakai untuk mengatur sudut pandang koordinatpada Scene View, misalnya :- Center
Menempatkan koordinat pada tengah obyek terpilih/aktif. Akankelihatan perubahannya saat kita memilih lebih dari satu obyek.
Gambar 1.14 Posisi koordinat ada ditengah kedua obyek.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- PivotMenempatkan koordinat pada titik pivot salah satu obyek ketika lebihdari satu obyek terpilih.
Gambar 1.15 Posisi koordinat ada pada cube, saat kedua obyek diseleksi.
- LocalPosisi koordinat x, y, z pada obyek terpilih/aktif, sehingga ketika obyekdirotasi maka posisi x, y, z akan berubah. Artinya koordinat obyekterpilih relative terhadap koordinat scene utama/Scene View.
Gambar 1.16 Posisi koordinat local ada pada cube saat dirotasi
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- GlobalPosisi koordinat x, y, z mengikuti Scene ViewPosisi koordinat akan tetap walaupun obyek dirotasi, karena mengikutikoordinat global. Artinya koordinat obyek absolute terhadap koordinatscene utama/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 tentusudah familiar dengan button seperti ini.
4. Layout Drop-Down
Berfungsi untuk mengubah/mengkustomisasi jendela tampilan Unity anda.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
7. Menu
Unity3D memiliki menu utama seperti software pada umumya. Menutersebut dapat dilihat pada gambar 1.18
Gambar 1.18 Menu Standar Unity versi 3.4
Penjelasan fungsi – fungsi menu Unity akan dibahas pada bagian tutorialmembuat game di akhir bab 2 dan awal bab 3. Setelah mengikuti tutorialtersebut, anda dengan sendirinya akan memahami fungsi menu pada Unitysecara keseluruhan.
1.3. Membuat, Menyimpan dan Mengkompilasi Project
1.3.1 Membuat dan Menyimpan Project Baru
Membuat project baru :
1. Klik File > New Project
Gambar 1.19 Membuat Project Baru
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
2. Pilih Create
Gambar 1.20 Memilih folder Project Baru ditempatkan
Catatan :
Coba perhatikan, diatas button Create ada beberapa pilihan Import thefollowing package, pilihan itu adalah standar package Unity yangmemudahkan kita untuk membangun sebuah game. Untuk sementarabiarkan saja dulu jangan dicentang/dipilih bagian tersebut. Kita akanmemakainya pada bagian tutorial membuat game.
Menyimpan project baru :
1. Klik File > Save Project
Gambar 1.21 Menyimpan Project Baru
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
1.3.2 Membuat Scene Baru
Langkah membuat scene baru :
1. Klik File > New Scene
Gambar 1.21 Membuat Scene Baru
Langkah menyimpan scene :
1. Klik File > Save Scene, atau File > Save Scene as…
Gambar 1.22 Menyimpan Scene
2. Beri nama scene1 misalnya, lalu simpan di folder asset.
Catatan :
Dalam satu project bisa terdiri dari satu scene atau lebih, tujuannya kita bisaberpindah dari satu scene ke scene lain. Contoh penggunannya adalahleveling dalam game, scene1 untuk level1, scene2 untuk level2, dst.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
1.3.3. Mem-build game
Langkah yang paling penting setelah kita membuat project game adalahbagaimana game tersebut bisa di-compile/di-build sehingga dapat dimainkanorang lain.
Unity menyediakan fasilitas mem-build game dengan satu langkah cepat.
Cara mem-build game pada Unity adalah sebagai berikut:
1. Klik File> Build Setting…
Gambar 1.23 Mem-build Game
2. Pilih Salah satu platform yang akan dipakai, lalu tekan Build :
Gambar 1.23 Memilih Platform
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Catatan :Unity menyediakan fasilitas build game dengan enam platform yang berbeda,diantaranya :- Web Player- PC and Mac Standalone- Android- iOS- Xbox 360- PS3Jadi, sekali kita mendesain sebuah game, maka kita bisa mem-build kedalam enamplatform yang berbeda. Menarik bukan ?
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Bab 2MODUL 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 memilikitingkat kompleksitas yang tinggi, seperti model manusia dan hewan dapat dibuat disoftware lain seperti Blender, 3D Max atau Maya. Selanjutnya model tersebut di-import oleh Unity menjadi game object dan disimpan sebagai asset. Tahapan importasset ini akan dijelaskan pada tutorial membuat game 3D di awal bab 3.
Untuk memulai membuat obyek dasar seperti cube, langkahnya adalah sebagaiberikut :
1. Klik GameObject > Create Other > Cube
Gambar 2.1 Membuat Cube
2. Hasilnya akan seperti gambar 2.2
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.2 Cube
2.2. Menggeser, memutar dan mengubah ukuran game object
Menggeser game object, dapat dilakukan dengan cara :
Melalui Scene View, klik button move the selected object,kemudian klik salah satu koordinat (ditandai dengan anak panah merah untuksumbu x, hijau untuk sumbu y dan biru untuk sumbu z). Lalu drag/geser denganmouse ke salah satu arah sumbu. Lihat perubahan nilai pada Inspector.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.3 Menggeser game object Cube
Memutar game object, dapat dilakukan dengan cara :
Melalui Scene View, klik button rotate the selected object,kemudian klik dan drag untuk memutar mengikuti sumbu yang sedang aktif (di-klik).Lihat perubahan nilai pada Inspector.
Gambar 2.4 Memutar game object Cube
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Mengubah ukuran game 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 atauz. Lihat perubahan nilai pada Inspector.
Gambar 2.5 Mengubah ukuran game object Cube
Selain ketiga cara diatas, menggeser, memutar dan mengubah ukuran gameobject, dapat dilakukan melalui jendela Inspector. Coba perhatikan gambar 2.6
Gambar 2.6. Menggeser, memutar dan mengubah ukuran melalui inspector
drag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Ada tiga bagian utama pada highlight gambar 2.6, yaitu position, rotation dan scale.Coba ubah-ubah nilai pada sumbu x, y atau z, lalu perhatikan perubaan pada gameobject-nya. Selamat mencoba!
2.3. Memahami Camera
Camera adalah bagian penting bagaimana suatu game ditampilkan kepada user.Unity menyediakan fasilitas membuat camera dengan langkah :
Klik GameObject > Create Other > Camera
Gambar 2.7. Membuat Camera
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.7. Camera Preview saat Camera sudah dibuat
2.4. Membuat Material dan Meng-import TextureSeperti halnya software 3D lain, Unity pun menyediakan fasilitas membuatmaterial standar berupa warna. Untuk material yang kompleks seperti teksturpohon, kulit dll, Unity menyediakan fasilitas import dari software lain.
Langkah membuat material pada Unity adalah sebagai berikut :
1. Klik Asset > Create > MaterialSecara default pada jendela Project akan terbentuk material baru dengan namaNew Material, silahkan ubah nama dengan nama cubeMaterial misalnyaseperti pada gambar 2.9
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.8. Membuat material
Gambar 2.9. Mengubah nama material
2. Klik cubeMaterial, perhatikan jendela Inspector, terdapat properties warnayang bisa kita edit.
3. Ubah menjadi warna merah misalnya (gambar 2.10)
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.10. Mengubah warna material
4. Drag cubematerial dari jendela Project ke Cube di jendela Hierarchy,sekarang warna cube menjadi merah sesuai dengan material yang di-drag.
Gambar 2.11. Warna cube berubah menjadi merah
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Setelah anda dapat membuat material dengan Unity, sekarang mari kita membuatmaterial dari software lain. Langkahnya adalah sebagai berikut :
1. Buka Software Adobe Photoshop2. Buat file 500x 500 pixel3. Buat material seperti dibawah ini, atau anda bisa mencari di stock foto online
Gambar 2.12. Material dengan nama woodgrain.jpg
4. Save ke folder Assets seperti pada gambar 2.13 , sehingga nanti akan munculdi Jendela Inspector (gambar 2.14)
Gambar 2.13. Contoh letak menyimpan file material pada folder Assets
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.14. Material muncul di jendela Project
5. Drag material dari jendela Project ke cube di jendela Hierarchy seperti gambar2.15. Lihat perubahan material yang terjadi pada cube !
Gambar 2.15. Pemberian material woodgrain pada cube
drag
[Type a quote fromthe document or thesummary of aninteresting point. Youcan position the textbox anywhere in thedocument. Use theText Box Tools tab tochange theformatting of the pullquote text box.]
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.16. Jendela inspector saat bagian shader di-klik
2.5 Meng-import Sounds (Audio Components)
Sebuah proyek game tentu akan banyak memerlukan suara/sound. Pada Unitydisebut Audio components. Secara umum dibagi dua, yaitu :
- Audio Listener, komponen yang dimasukkan kedalam kamera/player agarketika game dimainkan, player mampu menangkap suara yang ada padagame object.
- Audio Source, suara dimasukkan kedalam game object sehingga suara beradapada game object.
Default Shader
Klik disini
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Cara memberikan suara (Audio Listener) adalah sebagai berikut :
1. Klik Main Camera2. 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.
Gambar 2.18. Pada Inspector terdapat Audio Listener
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Catatan :
Secara default Audio Listener sudah terdapat pada Main Camera pada saat andamembuat project baru dan scene baru pada Unity. Langkah diatas untuk tambahanpengetahuan agar anda mengetahui proses pembuatan Audio Listener.
Setelah anda memahami cara membuat Audio Listener, berikutnya adalah caramemberikan suara (Audio Source) pada suatu game 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 folder Asset pada project anda. Pada folder Assets ini anda sebaiknyamembuat folder baru dengan nama Suara, supaya file pada Assets tersusunrapi/terstruktur.
Gambar 2.18. Meng-copy ke folder Asset\Suara
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
3. Kembali ke project di Unity Anda, lihat pada jendela project, anda akanmendapatkan tampilan seperti pada gambar 2.19, yaitu folder suara dansuara laser01 sudah muncul di jendela Project
Gambar 2.19. Tampilan pada jendela Project
4. Drag LASER01 pada jendela Project ke Cube di Jendela Hierarchy
Gambar 2.19. Tampilan pada Inspector saat sound LASER01 di - drag ke cube
drag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
5. Perhatikan perubahan tampilan jendela Inspector dan jendela scene padacube, sekarang cube memiliki properties Audio Source. Ada parameter yangbisa di adjust oleh anda. Silakan dicoba !
Gambar 2.20. Tampilan pada cube
6. Centang Loop pada jendela Inspector di bagian Audio Source, agar suaradijalankan secara berulang-ulang.
7. Untuk mencoba bahwa cube sudah memiliki suara, klik tombol play
lalu perhatikan apa yang terjadi.
2.6 Membuat PartikelPartikel biasanya dipakai untuk membuat efek ledakan peluru pada gamemenembak/perang, semburan asap knalpot pada game balap, atau efekpukulan pada game pertarungan. Pada prakteknya, banyak penggunaan efekpartikel ini. Sebagai standar game engine, tentu Unity menyediakan fasilitas ini.Mari kita ikuti langkahnya.1. Klik Game Object> Create Other > Particle System
Gambar 2.21. Langkah membuat partikel
Ada iconspeaker
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
2. Perhatikan yang terjadi pada Scene View, lihat gambar 2.22
Gambar 2.22. Partikel yang sudah dibuat pada jendela Scene View
3. Arahkan mouse anda ke jendela Inspector, disini kita akan mengaturparameter 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 pada Inspector
Ikuti nilaiyang terterapada gambarini
Klik untukmenggantiwarna
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
5. Perhatikan partikel akan berubah seperti gambar 2.24 pada jendela Scene
Gambar 2.23. Mengubah nilai dan warna paritkel pada Inspector
2.7 Memahami Prefabs
Prefab adalah salah satu Assets yang dapat digunakan berkali-kali. Prefabterletak pada Project View dan dapat dimasukkan kedalam Scene View dengancara di-drag. Selain itu, prefab pun dapat dikaitkan/ di-link-kan dengan gameobject lain.
Contoh aplikasinya, misalnya untuk membuat sebuah peluru yang ditembakkanpistol, kita hanya perlu sekali saja membuat game object berupa peluru, lalupeluru tersebut dijadikan prefab, kemudian prefab peluru diletakan pada ujungpistol, lalu nanti ketika mouse ditekan, maka prefab peluru dapat ditembakkanberkali-kali. Proses ini disebut instatiate. Lebih detail aplikasinya akandijelaskan pada sub bab membuat game.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Langkah membuat prefab adalah :1. Klik Asset> Create > Prefab
Gambar 2.23. Membuat Prefab
2. Secara default, Unity akan memberikan nama New Prefab, anda bisamenggantinya dengan nama lain pada jendela Inspector. Penamaan iniuntuk memudahkan saat prefab di-load oleh script. Perhatikan gambar 2.24
Gambar 2.23. Mengubah nama Prefab
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
3. Buat cube pada Jendela hierarchy, lalu drag cube ke dalam New Prefab. NewPrefab ini, coba ganti dengan nama PrefabCube Lihat gambar 2.24.
Catatan :
Penamaan PrefabCube ini hanya contoh saja, anda dapat menggantinyadengan nama lain.
Gambar 2.24 Men-drag cube kedalam PrefabCube
4. Setelah cube di-drag ke PrefabCube, anda tidak memerlukan cube lagi, olehkarena itu hapus cube yang ada di jendela Scene dengan cara klik lalu tekandelete pada keyboard.
5. Sekarang anda memiliki PrefabCube yang bisa di-drag sebanyak-banyaknyakedalam Jendela Scene tanpa harus membuat cube satu persatu!.
2.8 Membuat AnimasiAnimasi dapat dilakukan dengan dua cara, yaitu :1. Melalui perubahan keyframe (postion, rotation, scale) tanpa scripting.2. Dengan scripting.
drag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Pada bagian ini akan dijelaskan animasi tanpa scripting, untuk animasidengan scripting akan dibahas pada sub bab scripting.
Catatan :dalam contoh dibawah ini, animasi yang dibuat menggunakan game objectcube
Langkah membuat animasinya adalah sebagai berikut :1. Klik Create> Game Object > Cube2. Klik Windows > Animation (Perhatikan gambar 2.25)3. Klik record button, simpan dengan nama New Animation (Perhatikan
gambar 2.26)
Gambar 2.25 Jendela Animation
Gambar 2.26 Save Animation
klik
save
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
4. Klik Add Key untuk mengunci frame
Gambar 2.27 Mengunci Frame
5. Geser cube pada sumbu x, y atau z (lihat gambar 2.28)
Gambar 2.28 Menggeser Frame
Gambar 2.29 Menggeser Cube pada sumbu x untuk membuat animasi
geser
geser
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
6. Ingat, yang anda geser adalah garis yang berwarna merah. Setiap garismerah digeser ke kanan pada jendela animation, maka disaat yang samaapabila posisi cube di jendela scene view digeser, akan terbentukkeyframe baru. Coba perhatikan gambar 2.30
Gambar 2.30 Menggeser Cube pada sumbu x untuk membuat animasi
7. Untuk melihat animasi yang sudah dibuat coba tekan button play padajendela Animation.
2.9 Membuat Lighting
Lighting/pencahayaan adalah salah satu komponen yang mendukung terhadapskenario suatu game agar tampak lebih realistis.
Unity menyediakan tiga jenis pencahayaan yaitu :
- Directional Light- Point Light- Spotlight
Untuk menjelaskan perbedaannya, perhatikan langkah berikut :
1. Directional LightLangkah membuat Directional Light :
- Klik GameObject > Create Other > Cube- Klik GameObject > Create Other> Directional Light
Perhatikan Gambar 2.31 dan 2.32
keyframe
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.31 Membuat Directional Light
- Gunakan Move the Selected Object untuk menggeserDirectional Light ke sumbu +y (coba geser-geser aja sembarang posisidahulu).
geser
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.32 Menggeser Directional Light
- Gunakan Rotate the Selected Object untuk menggeser DirectionalLight pada sumbu x, y atau z . Lihat perbedaan yang terjadi pada gambar
Gambar 2.33 Memutar Directional Light
Kalau anda sudah mengerti cara membuat Directional Light, tentu akan mudahmembuat Point Light dan Spotlight seperti dibawah ini bukan ?
Gambar 2.34 Point Light (kiri) dan Spotlight (kanan)
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
2.10 Menerapkan Physics pada Game Object
Physics pada Unity diantaranya dipakai untuk mengontrol gravitasi, gaya dantumbukan (collision) pada suatu game object. Unity memiliki bawaan NVIDIA PhysXPhysic engine.
Pada sub-menu Physic terdapat pilihan seperti gambar 2.35 :
Gambar 2.35 Sub-menu pada Physics
1. Rigidbody
Rigidbody merupakan sub-menu physics yang salah satu fungsinya digunakan untukmengontrol gravitasi pada game object. Untuk mencoba menerapkan rigidbody ini,langkahnya adalah sebagai berikut :
- Buat Object cube, GameObject> Create Other > Cube- Buat Object plane, GameObject> Create Other > Plane- Tempatkan posisinya seperti gambar 2.36
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.36 Membuat Cube dan Plane
- Terapkan Physics pada cube (pastikan posisi cube melayang diatas plane),langkahnya : Klik Cube, klik Component> Physics> Rigidbody
- Tempatkan posisi Main Camera seperti gambar 2.37. Sehingga pada saat di-play pergerakan jatuhnya cube ke plane akan terlihat.
Gambar 2.37 Menggeser Posisi Main Camera
cube
plane
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Klik Game View, Lalu tekan button Play- Perhatikan apa yang terjadi ? Kalau langkah anda betul, seharusnya cube
akan jatuh secara realistis menimpa plane.
Catatan :Pada jendela Inspector, secara default properties Use Gravity di-checklist.Artinya ketika diterapkan rigidbody pada game object, secara otomatisberlaku gravitasi pada obyek tersebut.
Gambar 2.38 properties pada Inspector pada saat diterapkan rigidbody pada Game Object
2. Kinematic Rigidbodies
Untuk keperluan tertentu, kita dapat menon-aktifkan properties Use Gravity.Kita dapat menerapkan rigidbody yang lain dengan cara men-checklist IsKinematic. Kinematic Rigidbodies tidak dipengaruhi oleh gaya, gravitasi dantumbukkan.
Use Gravityaktif
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Salah satu aplikasi kinematic ini yaitu pada prefab peluru yang ditembakkan olehpesawat yang dikontrol melalui script. Lebih lanjut cara menerapkannya dapatdilihat pada tutorial membuat game di sub bab berikutnya.
3. ColliderCollider merupakan komponen physic yang dipakai untuk mengontrol tumbukanantar game object. Secara default Unity menyertakan collider ketika kitamembuat cube, sphere, capsule dan plane. Namun, untuk obyek (game object)yang di-import dari software modelling lain, maka kita perlu menambahkancollider terhadap obyek tersebut secara. Unity menyediakan lima tipe collidersebagai 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 memiliki mesh yang kompleks- Wheel, digunakan untuk obyek berbentuk roda
Langkah membuat collider adalah sebagai berikut :
1. Klik Component> Physics> Box Collider2. Perhatikan perubahan properties pada Inspector (gambar 2.39)
Gambar 2.39 Membuat Box Collider
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Catatan :Ketika membuat game object dasar pada Unity, secara default collidersudah disertakan pada game object tersebut. Object dasar tersebut adalah :- Cube- Sphere- Capsule- Cylinder- Plane
2.11 GUI (Graphical User Interface)
GUI adalah komponen antarmuka yang diperlukan untuk berinteraksi antarauser dengan program komputer. GUI dapat berbentuk teks, gambar, maupunbutton. Pada bagian ini akan dijelaskan tiga jenis GUI pada unity :
1. GUI TextYaitu teknik menampilkan teks agar muncul di layar pada saat gamedijalankan.
2. GUI TextureYaitu teknik menampilkan gambar/image agar muncul di layar pada saatgame dijalankan.
3. GUI Basic ControlYaitu teknik menampilkan GUI yang dikontrol melalui script agar muncul dilayar pada saat game dijalankan. Aplikasinya misalnya button untukperpindahan menu, perpindahan level, atau GUI interaktif lainnya.
Langkah membuat GUI Text adalah sebagai berikut :
1. Klik GameObject > Create Other > GUI TextPerhatikan gambar 2.40!
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.40 Membuat GUI Text
2. Edit Tulisan GUI Text dan Text menjadi Selamat Datang. Perhatikan tulisan diScene View, berubah bukan ?
Gambar 2.41 Mengedit tulisan GUI Text
Edit tulisan
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Langkah membuat GUI Texture adalah sebagai berikut :1. Klik GameObject > 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 AdobePhotoshop, lalu save di folder asset, sehingga muncul pada jendela project.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.43 Memasukkan file Texture.jpg ke folder Assets
Gambar 2.44 Meng-edit Texture size pada Inspector
3. Pilih/klik Unity Watermark-small di jendela Hierarchy
4. Drag texture.jpg di jendela project ke jendela Inspector (lihat gambar 2.44)
5. Klik Pixel Inset pada panel Inspector, lalu ubah ukuran Width : 800 danHeight : 600. Perhatikan perubahan yang terjadi pada Game View.
Edit Width dan Height
drag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
6. Apabila texture tidak berada di tengah, atur nilai position x dan y padajendela Inspector (gambar 2.44)
7. Apabila parameter yang diatur benar, kurang lebih texture akan tampil padaGame View seperti gambar 2.45.
Gambar 2.45 Tampilan GUI Texture pada Game View, setelah diatur parameternya.
Sekarang anda sudah memahami cara membuat GUI Text dan GUI Texture.
Salah satu aplikasinya adalah untuk opening menu atau perpindahan antar scenepada game.
Pada bagian akhir sub pokok bahasan GUI, akan dijelaskan beberapa langkahsekaligus contoh membuat GUI dengan Javascript. Ikuti langkahnya sebagai berikut :
1. Klik Assets > Create > Javascript2. Ubah nama default NewBehaviourScript menjadi MenuScript (nama file boleh
bebas)3. Klik dua kali untuk meng-edit-nya
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.46 Membuat Script dengan Javascript
4. Ketikkan script sebagai berikut :
/* Contoh Script GUI untuk leveling Game */
function OnGUI () {// Membuat Background KotakGUI.Box (Rect (10,10,100,90), "Menu Game");
// Membuat button pertama. Jika ditekan, maka akan dipanggil Level 1if (GUI.Button (Rect (20,40,80,20), "Level 1")) {
Application.LoadLevel (1);}
// Membuat button keduaif (GUI.Button (Rect (20,70,80,20), "Level 2")) {
Application.LoadLevel (2);}
}
Penjelasan Script :
function OnGUI ()
merupakan fungsi untuk mengontrol GUI pada Unity. Setiap kali anda akanmembuat GUI dengan script, 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 kesisi 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 membuat button dengan aturan 20= jarak dari sumbu xke sisi button, 40=jarak dari sumbu y ke sisi button, 80 = panjang button dan
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
20 = lebar kotak. Kemudian tulisan "Level 1" merupakan tulisan pada button,dan perintah Application.LoadLevel (1); merupakan perintah untukmemanggil scene/level 1.
if (GUI.Button (Rect (20,70,80,20), "Level 2")) {Application.LoadLevel (2);
Perintah untuk membuat button kedua dan saat di-klik maka akan memanggilscene/level 2.
Catatan :Pada saat membuat game, tentu anda akan mempunyai banyak scene,sehingga GUI seperti ini diperlukan untuk perpindahan antar scene.
5. Buat game object baru dengan cara klik GameObject> Create Empty6. Drag script yang dibuat (MenuScript) ke dalam GameObject di jendela
Hierarchy7. Untuk melihat hasilnya, coba jendela kerja dipindahkan ke Game View lalu
tekan Play.
Gambar 2.46
Men-drag script kedalam game object (kiri) dan hasilnya pada saat di –play pada game view (kanan)
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
2.12. Membuat Game 2D : Petualangan Angkasa !
Salah satu perbedaan antara game 2D dengan 3D terletak pada posisi game objekterhadap sudut pandang pemain. Pada game 2D posisi game object berada padakoordinat x dan y saja, sehingga pemain hanya dapat menggerakan game object kekanan, kiri, atas atau bawah. Berbeda dengan game 3D, pemain seolah-olah dapatmasuk kedalam ruang permainan (sumbu z) dan leluasa menggerakan game objectke 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 mudahmengembangkan game 3D.
Tema game 2D ini adalah petualangan angkasa. Skenarionya adalah, playerdiharuskan menghancurkan serangan batu luar angkasa dengan cara menembakkanpeluru dari pesawat milik player. Apabila peluru mengenai batu luar angkasa, makanilai akan bertambah 10. Nilai dibatasi sampai 1000, sehingga bila mencapai 1000,maka player dianggap menang. Selanjutnya, apabila batu mengenai pesawat player,maka nyawa akan berkurang. Nyawa player disediakan 3 nyawa, sehingga kalau tigakali kena batu, maka permainan berakhir (game over).
Mari kita mulai.
A. Membuat Cube, Directional Light dan Mengatur kamera
1. Klik File > New Project2. Simpan di foder misalnya c:\Game Petualangan Angkasa3. Pilih Create
Gambar 2.47 Create New Project
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
4. Klik File > Save Scene. Beri nama Level15. Klik Game Object > Create Other > Cube6. Klik Main Camera, Ubah parameter pada Inspector sbb :
- Background : Pilih warna hitam- Projection : Pilih Orthographic- Size : 5- Transform
Position : x = 0, y = 0 dan z= - 3Rotation : x = 0, y = 0 dan z = 0Scale : x = 1. Y = 1 dan z = 1
Gambar 2.48 Pengaturan parameter Main Camera pada Inspector
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
7. Klik Cube, lalu edit nilai pada jendela Inspector sbb :Transform
Position : x = 0, y = -4 dan z= - 3Rotation : x = 0, y = 0 dan z = 0Scale : x = 1. Y = 1 dan z = 1
8. Klik Assets > Create > Material9. Ubah dengan nama MaterialPlayer, pilih warna kuning10. Drag MaterialPlayer kedalam Cube11. Klik GameObject > Create Other > Directional Light12. Lihat hasilnya pada Game View seperti gambar 2.49
Gambar 2.49 Tampilan pada Game View
Catatan :
Untuk tahap awal, game object cube pada gambar 2.49 diasumsikan sebagaipesawat player yang dapat di gerakkan ke kanan dan ke kiri. Nanti, pada bagianakhir tutorial, cube ini akan diganti dengan mesh berbentuk pesawat, sehinggagame tampak lebih real.
Agar cube/pesawat dapat dikontrol oleh keyboard, maka kita harus memanggilinput keyboard melalui script.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Memberikan Script Control pada Cube
1. Klik Assets > Create > Javascript2. Ubah menjadi ScriptPlayer3. Drag ScriptPlayer kedalam Cube
Gambar 2.50 memasukkan ScriptPlayer kedalam Cube
4. Klik dua kali, kemudian tuliskan script sebagai berikut :
Gambar 2.51 Membuat ScriptPlayer untuk menggerakan cube ke kiri dan ke kanan
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
5. Coba Play ! apakah cube bergerak ke kiri dan ke kanan ? kalau tidak , klikcube, kemudian lihat bagian Inspector, lalu ubah Player Speed menjadi 2(coba ubah-ubah nilainya antara 0 sd 10, lalu tekan Play, bagaimanahasilnya?) .
Gambar 2.52 Mengubah Player Speed pada Properties Jendela Inspector
6. Bagaimana, apakah cube sudah bisa digerakkan ?7. Kalau pergerakkan cube kurang halus, maka kita dapat menambahkan script
sbb :* Time.deltaTime , sehingga script berubah menjadi :
Gambar 2.53 Penambahan script Time.deltaTime agar pergerakkan menjadi halus dan lebih realistis.
8. Kalau pergerakkan terasa lambat, maka ubah kembali Player Speed menjadi =10 pada Inspector. Bagaimana ? sudah realistis bukan ?
9. Selanjutnya Klik Component > Physic > Rigidbody10. Centang Is Kinematic dan Non-aktifkan Use Gravity pada jendela Inspector
Player Speed = 2
Penambahan scriptTime.deltaTime
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Catatan :Untuk mengetahui bagaimana Unity mengelola input, baik dari keyboard,mouse, joystick, dll. Lakukan langkah :- Klik Edit > Project Setting > Input
Gambar 2.54 Setting Input pada Unity
Perhatikan !semua yang tercantum dalam Inspector adalah parameter input yang dapatdipanggil melalui script.
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 kali ScriptPlayer.js- Tambahkan deklarasi variable seperti dibawah ini :
Gambar 2.55. Penambahan deklarasi variabel
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Sehingga script berubah menjadi seperti gambar 2.56
Gambar 2.56 Tampilan script setelah ditambahkan deklarasi variable
- Klik cube, lalu edit pada bagian inspector. Perhatikan, sekarang adapenambahan variable Player Lives dibawah Player Speed. Ubah nilainya dari0 menjadi 3. Artinya, nyawa Player di-set menjadi 3.
Gambar 2.57 Men-set nyawa player menjadi 3
- Lalu mengapa variable Player Score tidak muncul ? padahal kita sudahmendeklarasikannya pada gambar 2.56. Hal ini karena kitamendeklarasikanya sebagai static var !
var
static var
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Untuk menampilkan skor dan nyawa pada GUI, ikuti langkah sebagai berikut :
- Klik dua kali ScriptPlayer.js- Tambahkan script sbb :
Sehingga tampilan ScriptPlayer keseluruhan adalah sebagai berikut :
Gambar 2.58 Tampilan keseluruhan PlayerScript.js
Silahkan di-Play, perubahan apa yang terjadi ? Anda akan melihat seperti gambar2.59, bukan ?
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.58 Tampilan Skor dan Nyawa pada Game View
Permasalahan :
Permasalahan pertama adalah Cube/pesawat hanya dapat bergeser ke kiri dan kekanan, bagimana jika kita ingin menggeser ke atas dan ke bawah ? Script apa yangharus ditambahkan ?
Apabila anda memahami bagaimana cube dapat digeser ke kanan dan ke kiri, makadengan mudah kita dapat membuat script agar cube dapat digeser ke atas dan kebawah. Caranya adalah panggil input vertikal, lalu beri perintah menggeser cube.
Lebih jelasnya lihat perhatikan script sbb :
// memanggil input keyboard pada sumbu verticalnaik = (PlayerSpeed * Input.GetAxis("Vertical")) * Time.deltaTime ;
// menggerakan player ke atas dan ke bawahtransform.Translate(Vector3.up*naik);
Mudah bukan ?
Sekarang dengan leluasa anda dapat menggerakan cube ke kiri, kanan, atas danbawah.
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Permasalahan kedua, ketika kita menggeser cube ke kanan sampai melewati areapermainan, maka cube akan hilang, hal in disebabkan karena koordinatnya terusbergeser. Kasus serupa terjadi juga ketika kita menggeser habis ke kiri, ke atasmaupun ke bawah. Oleh karena itu masalah ini harus dipecahkan, karena akanmembingungkan pemain.
Pemecahannnya adalah sbb :
- Cek pada koordinat berapa ke samping kanan dan kiri (y), atas dan bawah (x) posisicube hilang
- Anggap koordinat sudah didapatkan, lalu berikan script tambahan seperti dibawahini :
Coba Play sekarang ! apa yang terjadi ? seharusnya cube akan tetap berada padaarea permainan walaupun terus digeser ke kanan, kiri, atas ataupun bawah….!
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
C. Membuat Peluru
Langkah selanjutnya adalah membuat peluru. Peluru dapat dibuat denganmenggunakan capsule atau sphere. Pada contoh ini peluru yang dibuatmenggunakan capsule.
Langkahnya adalah sebagai berikut :
- Klik Game Object > Create Oher > Capsule- Ubah pada jendela Inspector sbb :
TransformPosition : x = 0, y = 0 dan z= 0Rotation : x = 0, y = 0 dan z = 0Scale : x = 0.2 Y = 0.2 dan z = 0.2
- Klik Assest > Create > Javascript- Ubah namanya menjadi ScriptPeluru- Drag ScriptPeluru kedalam Capsule di jendela Hierarchy- Edit Script menjadi sbb :
Gambar 2.59 Script Peluru
- Klik Capsule, beri nilai Peluru Speed = 10 pada jendela Inspector. Untuk lebihjelasnya lihat gambar 2.60
Gambar 2.60a Mengubah Speed Peluru menjadi 10
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Klik Component > Physics > Rigidbody- Lihat perubahan yang terjadi pada jendela Inspector ketika capsule diberi
Physics > Rigidbody.
Gambar 2.60b mengaktifkan Kinematic pada jendela Inspector
- Unchecklist (jangan dicentang) Use Gravity dan checklist (centang) IsKinematic, karena pada game 2D ini gerak peluru tidak dipengaruhigravitasi walaupun tetap dikontrol oleh script kapan peluru akanditembakkan ke arah sumbu Y.
Catatan :Script untuk peluru hampir sama dengan script untuk menggeser cube keatas dan ke bawah. Perbedaannya, pada script peluru tidak memanggilfungsi input dahulu, sehingga ketika di-play peluru langsung bergerak keatas tanpa menunggu input dari keyboard. Perhatikan script pada gambar2.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 menembakbatu luar angkasa di area layar yang kita setting saja. Oleh karena itu lakukanlangkah sebagai berikut :
- Klik Layout menjad 2 by 3, tujuannya agar kita memiliki jendela Scene Viewdan Game View yang terpisah.
Jangan dicentang
centang
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.61. Mengubah layout/jendela kerja Unity
- Geser Peluru di Scene View keatas arah sumbu Y (+)- Perhatikan pada koordinat Y = berapa peluru hilang dari area Game 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 pelurutidak Nampak dikoordinat Y = berapa ?
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.61. Tampilan pada Scene View, Game View dan Inspector
- Setelah kita mengetahui peluru tidak nampak di koordinat Y=5.5, makabuatlah script sebagai 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 akanmenggunakan peluru tersebut berulang-ulang saat ditembakkan olehpesawat (cube). Oleh karena itu, kita akan membuat peluru tersebut menjadiprefab.Langkahnya adalah sebagai berikut :- Klik Assets > Create > Prefab- Ubah namanya dari New prefab menjadi PeluruPrefab- Drag Capsule kedalam PeluruPrefab
- Hapus Capsule karena kita sudah memiliki PeluruPrefab
drag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
D. Menghubungkan PeluruPrefab dengan Player
Setelah proses pembuatan prefab peluru selesai, permasalahan kitaselanjutnya adalah, bagaimana caranya supaya peluru dapat ditembakkanketika ditekan salahsatu tombol di keyboard, misalnya tombol spacebar ?
Solusinya adalah pada ScriptPlayer harus dideklarasikan variable pelurutersebut, lalu dipanggil dan ditembakkan dengan script ketika spacebarditekan ! Proses ini disebut INSTANTIATE.
Langkahnya adalah sbb :- Buka ScriptPlayer.Js- Tambahkan script sebagai berikut :
- Klik Cube di Jendela Hierarchy- Drag PeluruPrefab ke Peluru di Jendela Inspector
Gambar 2.62 Menghubungkan PrefabPeluru ke jendela Inspector pada Game Object Cube
drag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Langkah berikutnya adalah menambahkan script agar PrefabPeluru tersebutdapat ditembakkan, langkahnya adalah sbb :
- Tambahkan script untuk memanggil input spacebar lalu menembakkannya.
- Coba Play ! kalau langkah anda benar, peluru akan dapat ditembakkan saatspacebar ditekan.
- Berikut merupakan tampilan script lengkap PlayerScript.Js
Gambar 2.63 Tampilan PlayerScript sampai tahap instantiate
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
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 *.wav yang cocok untuk suara tembakan.- Simpan di folder Asset dan sebaiknya buat folder baru dengan nama sound- Klik PeluruPrefab- Klik Component > Audio > Audio Source- Drag sound ke dalam Audio Clip pada jendela Inspector (pada tutorial ini
menggunakan sound dengan nama file laser14.wav
Gambar 2.64 memasukkan audio kedalam PeluruPrefab
- Tekan Play! Sekarang ketika ditekan spacebar untuk menembakkan pelurumaka akan keluar suara. Menarik bukan ?
drag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
F. Membuat Serangan Musuh (Batu Luar Angkasa)
Sebuah game akan seru kalau ada misi. Misi pada game ini adalah menembak batu-batu luar angkasa sebanyak mungkin. Setiap batu yang kena akan mendapat skor+10. Pemain dianggap berhasil menyelesaikan Level 1 kalau mencapai skor 1000.
Mari kita mulai membuatnya. Pada game ini kita menggunakan game object sphereuntuk batu luar angkasa. Langkahnya adalah sbb :
- Klik Game Object > Create Other > Sphere- Ubah pada jendela Inspector sbb :
TransformPosition : x = 0, y = 0 dan z= 0Rotation : x = 0, y = 0 dan z = 0Scale : x = 1 Y = 1 dan z = 1
- Klik Assets > Create > Material- Beri nama MaterialBatu- Pilih warna merah, lalu drag MaterialBatu ke dalam Sphere- Perhatikan warna sphere sekarang menjadi merah.
Gambar 2.65 Memasukan material kedalam sphere
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Klik Assets > Create > Javascript- Beri nama ScriptBatu- Drag ScriptBatu ke dalam Sphere pada jendela Hierarchy- Klik dua kali ScriptBatu, buatlah script sebagai berikut :
- Klik sphere, edit Batu Speed menjadi 5 (boleh nilainya diubah 10) padajendela Inspector
- Tekan Play ! batu sekarang sudah bergerak menuju ke pesawat.- Kalau posisi batu (sphere) masih di tengah, maka drag ke posisi sumbu y = 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 setelahkeluar area permainan, karena program akan terus menerus memprosesnya.Oleh karena itu cek posisi batu ketika keluar dari area layar. Kemudian kita
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
berikan script untuk mengembalikan posisi batu (sphere) ke koordinat semulaketika sudah melewati area layar permainan.Perhatikan gambar 2.67
Gambar 2.67 men-drag sphere sampai dapat koordinat seperti gambar 2.68
Gambar 2.68 koordinat sphere ketika keluar area layar di posisi y=-5.5
drag
Y = 5.5
Y = -5.5
Arah gerak batu
(sphere)bol
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Setelah kita mendapatkan koordinat, maka langkah selanjutnya adalahmenambahkan script sbb :
Ketika di-play posisi pergerakan batu monoton dalam satu alur lintasan saja. Jelasdalam sebuah game kondisi ini akan sangat membosankan. Oleh karena itu, kitaperlu menambahkan script agar serangan batu tersebut random/acak posisinya.Berikut script-nya :
Langkah selanjutnya adalah bagaimana caranya untuk deteksi tumbukan antarasphere (batu luar angkasa) dengan cube (pesawat) si player ? atau deteksitumbukkan antara peluru dengan batu? Sehingga ketika batu mengenaiplayer(cube), maka nyawa player akan berkurang, begitu juga ketika batu terkenatembakan peluru , maka batu akan hancur!
Inilah yang disebut collision detection. Selain collision detection, Unitymemudahkan kita dengan memberikan fasilitas “tag” dalam jendela Inspector untuksetiap game object. Sehingga setiap game object yang diberi tag dapat dikenali olehgame object lain.
Lihat gambar 2.69 ketika sphere belum diberi tag
Gambar 2.69 Memberi tag pada game object
- Lalu Klik Untagged > Add Tag
Belum diberi tag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Beri nama batu pada Element 0
Gambar 2.69 memilih tag
- Klik lagi sphere > batu- Sekarang game object sphere sudah memiliki tag dengan nama batu- Langkah selanjutnya, buka scriptPeluru.Js di jendela Project. Tambahkan
script sebagai berikut :
- Lalu klik Sphere pada jendela Hierarchy- pastikan di jendela Inspector, anda memberikan centang pada Is Trigger
Gambar 2.70 memberi tanda centang pada sphere collider
centang
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Berikan tanda centang juga pada peluruPrefab (game object peluru) dancube (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 nilai player bertambah, batu yang terkena tembakan pun hancur.Sedangkan sekarang tidak..!
Untuk menyelesaikannya, maka lakukan langkah sebagai berikut :
- Buka scriptPeluru.Js
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Tambahkan baris script untuk menghancurkan game object setelah scriptmenambah nilai :
Sehinggga ketika di-play maka game object batu (sphere) akan hilang/hancursewaktu terkena peluru. Kemudian peluru lainnya akan muncul kembali secararandom/acak.
Memberikan Efek LedakanEfek ledakkan akan diberikkan ketika peluru mengenai batu, sehingga game tampaklebih menarik. Langkahnya adalah sebagai berikut :- Klik Game Object > Create Other > Particel System- Ubah namanya menjadi Ledakan di Jendela Inspector- Ubah pada jendela Inspector sbb :
TransformPosition : x = 0, y = 0 dan z= 0Rotation : x = 0, y = 0 dan z = 0Scale : x = 1 Y = 1 dan z = 1
- Berikan nilai seperti pada gambar 2.72 (perhatikan detail nilai-nilai nya)
Penambahan script
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.72 Mengatur parameter partikel pada jendela Inspector
Langkah selanjutnya adalah membuat prefab untuk ledakkan.
- Klik Assets > Create > Prefab- Ubah namanya menjadi ledakanPrefab- Drag ledakan di jendela Hierarchy kedalam LedakanPrefab di jendela
Project- Lihat gambar 2.73
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Gambar 2.73 Men-drag ledakan kedalam ledakanPrefab
- Lalu delete ledakan di jendela Hierarchy- Langkah berikutnya adalah instantiate ledakkan terhadap peluruPrefab.- Klik dua kali ScriptPeluru.js- Tambahkan script sebagai berikut :
- Tekan Play, apa yang terjadi ? Menarik bukan ?
drag
Penambahan script
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Menambahkan Audio pada ledakkan
Supaya permainan lebih seru, tambahkan efek suara ketika terjadi ledakkan. Ikutilangkahnya :
- Cari suara bom untuk efek ledakkan, simpan di folder assets/sound.- Klik ledakanPrefab- Klik Component > Audio > Audio Source- Drag carbomb.wav ke dalam Audio Clip
Gambar 2.74 Men-drag audio kedalam Audio Clip di Jendela Inspector
- Coba Play !
Mengurangi Nyawa Player dan Membuat Menu KalahPada bagian awal, kita sudah menentukan aturan game yaitu, jika peluru mengenaiplayer, maka nyawa akan berkurang.
- Buka scriptPlayer.Js- Tambahkan baris sebagai berikut :
drag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
OK, coba tekan Play ! lalu coba biarkan batu (sphere) mengenai player (cube)
Masalah :
Nyawa yang diberikan sebanyak 3, sehingga apabila terkena serangan batu sebanyaktiga kali, seharusnya player dianggap kalah. Yang terjadi sekarang adalah, nilainyawa teus berkurang menjadi dari 3 menjadi 2, 1, 0, -1, -2 dst…..padahal kitamenginginkan ketika nyawa =0 maka permainan berakhir (game over) !
Solusi :
- Buat scene baru, klik File > New Scene- Save dengan nama sceneKalah- Buat Script baru, Klik Assets > Create > Javascript- Ubah dengan nama scriptKalah- Edit dengan script sebagai berikut :
Penambahan script
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Buat game object kosong 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, pastikan build setting sebagai berikut :
Gambar 2.76 Build Setting
drag
Scene aktif
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Langkahnya adalah :
- Klik File > Build Setting- Drag level1.unity dan sceneKalah.unity ke Scenes In Build
Gambar 2.78 Mengurutkan scene pada build setting.
Langkah selanjutnya adalah menghubungkan level1 dengan sceneKalah, caranyaadalah :
- Klik dua kali scriptPlayer.js- Tambahkan script sbb :
Artinya, jika nyawa player kurang atau sama dengan nol, maka load sceneKalah(coba lihat di - build setting!).
drag
Nama sceneyang di-load discript
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Membuat Menu Awal
Langkahnya sama ketika membuat menu untuk scene kalah, yaitu sbb :
- Buat scene baru, klik File > New Scene- Save dengan nama sceneAwal- Buat script baru, Klik Assets > Create > Javascript- Ubah dengan nama scriptAwal- Edit dengan script sebagai berikut :
- Klik Game Object > Create Empty- Drag ScriptAwal kedalam empty Game Object
Gambar 2.79 men-drag scriptAwal kedalam empty game object
Langkah selanjutnya adalah :
drag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Klik File > Build Setting- Drag sceneAwal kedalam Build Setting
Gambar 2.80 men-drag sceneAwal kedalam build setting
- Save pekerjaan Anda !
Membuat Menu Menang
Langkahnya sama ketika membuat menu untuk scene kalah, yaitu sbb :
- Buat scene baru, klik File > New Scene- Save dengan nama sceneMenang- Buat script baru, Klik Assets > Create > Javascript- Ubah dengan nama scriptMenang- Edit dengan script sebagai berikut :
drag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Klik Game Object > Create Empty- Drag ScriptMenang ke dalam empty Game Object- Klik File>Build Setting- Drag SceneMenang ke dalam Scene In Build
Gambar 2.81 men-drag sceneMenang kedalam build setting
Tambahkan script sbb pada playerscript.Js, Anda mengerti maksudnya bukan ? :
drag
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Langkah terakhir sebelum game di-build..ubah urutan sbb, agar pada saat gamedimainkan, sceneAwal yang di-load terlebih dahulu..!
Gambar 2.82 Mengurutkan scene yang sesuai kedalam build setting
OK….tutorial utama membuat Game Petualangan Angkasa dianggap selesai. Tahapberikutnya adalah memoles game ini agar lebih real dan menarik. Ada tigakomponen yang ditambahkan pada game ini yaitu :
- Penambahan GUI Texture untuk setiap menu;- Penambahan benda-benda luar angkasa dengan partikel;- Penggantian model pesawat dari cube menjadi Model Pesawat yang dibuat
di software 3D modeling, dalam contoh ini menggunakan 3D Max.
Ubah urutan scenedengan cara di-drag,misalnya sceneAwal di-drag dari urutan 2menjadi urutan 1
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Supaya terlihat perbandingannya berikut capture game sebelum di tambahkanketiga komponen diatas :
Gambar 2.83 Game sebelum diganti modeling-nya
Gambar 2.84 Game setelah diganti modeling-nya
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Ikuti langkahnya sebagai berikut :
- Buat modeling pesawat di 3D Max atau blender, atau anda dapat mencarimodel yang gratis di Internet.
- Export model pesawat menjadi format *.fbx, misalnya SimpelShip.fbx- Simpan kedalam folder Assets bersama material yang dipakainya.- Klik Cube, lalu pilih Mesh (ingat kuncinya di mesh ini !) kita akan mengganti
mesh cube menjadi mesh pesawat.- Ganti cube menjadi polySurface1
Gambar 2.85 penggantian mesh cube menjadi pesawat (polysurface)
- Langkah penting selanjutnya adalah sesuaikan ukuan pesawat.- Lalu hapus box collider di jendela Inspector denga cara klik kanan>remove
component
Klik untukmenggantimaterial
Klik untukmenggantimesh
Sesuaikanukuranpesawat
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
- Tambahkan mesh collider dengan cara klik component > physics > meshcollider. Artinya box collider sudah tidak dipakai lagi diganti menjadi meshcollider untuk deteksi tumbukkannya, karena obyeknya sudah diganti daribox (cube) menjadi pesawat.
Urusan mengganti model sudah selesai, tahap selanjutnya yaitu menambahkansimulasi benda-benda angkasa lainnya dengan partikel. Caranya :
- Klik dua kali scene level1- Klik Game Object > Create Other > Particel Systems- Atur parameter pada jendela inspector sbb :
Gambar 2.86 Menambahkan partikel di level1 (area permainan)
- Lihat hasilnya..Menarik bukan ?
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Polesan terakhir adalah menambahkan GUI Texture di setiap scene. Langkahnyaadalah :
- Buat tiga buah gambar di photoshop dengan ukuran 1024 x 768 pixel sebagaiberikut, simpan dalam format *.jpeg.
- Gambar ini hanya contoh saja, Anda dapat membuat versi lain yang lebihbagus !
Gambar 2.87 Contoh gambar untuk GUI Texture di setiap scene
Modul Membuat Game dengan Unity3D Engine - copyright Deni Kurnia.
Selanjutnya adalah simpan ketiga gambar tersebut di folder Assets. Untukmemasukkan tekstur kedalam scene, ikuti langkah sbb :
- Klik dua kali sceneAwal- Klik Game Object > Create Other > GUI Texture
Gambar 2.88 Menambahkan GUI Texture
- Klik Texture di Jendela inspector, lalu pilih file awal.jpeg.- Ubah scale menjadi x = 1 dan y = 1- Selesai !
Klik disini
Pilihtextureawal.jpeg