mudah membuat game dengan unity3d

94
12 Modul Membuat Game dengan Unity 3D Engine Tutorial step by step dari nol hingga mahir Deni Kurnia

Upload: itb-ac

Post on 10-Mar-2023

0 views

Category:

Documents


0 download

TRANSCRIPT

12

Modul Membuat Gamedengan Unity 3D EngineTutorial step by step dari nol hingga mahir

Deni Kurnia

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