Anda di halaman 1dari 207

1

DAFTAR ISI

DAFTAR ISI .................................................................................... 3


BAB I PENDAHULUAN .......................................................... 4
1.1 Getting Started ................................................................ 4
1.2 Sejarah Unity................................................................... 6
1.3 Instalasi Unity 3D ..........................................................10
1.3.1 Men-download Unity 3D .......................................12
1.3.2 Menginstal Unity di komputer ...............................17
BAB II MEMBUAT PROJECT BARU .....................................25
2.1 Membuat Project Baru Di Unity....................................25
2.2 Setting Project Untuk Android Di Unity 3D .................28
BAB III MEMPERSIAPKAN ASSET ........................................30
3.1 Karakter .........................................................................30
3.2 Narkoba .........................................................................33
3.3 Buah Apel ......................................................................37
3.4 Environment Kota ..........................................................48
BAB IV MEMBUAT SCENE .....................................................53
4.1 Membuat Scene Main menu ...........................................53
4.2 Membuat Scene Level 1 .................................................68
4.3 Membuat Scene Level 2 ...............................................146
4.4 Membuat Scene Level 3 ...............................................149
BAB V SCRIPTING.................................................................153
5.1 Scripting Camera Motor ..............................................154
5.2 Scripting Collectable ...................................................156
5.3 Scripting GameManager..............................................158

2
5.4 Scripting GameOverManager......................................161
5.5 Scripting GameOverManager3....................................165
5.6 Scripting Keluar...........................................................167
5.7 Scripting MainMenuControl ........................................170
5.8 Scripting Menang.........................................................174
5.9 Scripting Narkoba ........................................................177
5.10 Scripting Pause ............................................................179
5.11 Scripting PlayerHealth ................................................182
5.12 Scripting PlayerHealth3 ..............................................187
5.13 Scripting PlayerMotor .................................................191
5.14 Scripting PlayerMotor3 ...............................................194
5.15 Scripting Swipe ............................................................197
BAB VI PENYELESAIAN .......................................................200
6.1 Setting Software Development kit (SDK) Android di
Unity 3d .....................................................................................201
6.1 Setting Project Untuk Android di Unity 3D .................202
DAFTAR PUSTAKA ....................................................................207

3
BAB I

PENDAHULUAN

1.1 Getting Started

Game “Narkono” merupakan game yang menggunakan


sudut pandang Third Person Shoot sederhana dalam bentuk
digital, yang memperkenalkan tentang bahaya mengkonsumsi
narkotika serta mengajarkan dan mengajak para remaja
khususnya pada usia 12-21 tahun untuk menjauhi dan tidak
mengkonsumsi narkotika melalui Aplikasi Game 3D narkono
berbasis Android. Untuk itu dipelukan sebuah Software yang
dapat membuat konsep dan rule untuk membuat game tersebut
kedalam bentuk digital yang mana salah satunya adalah Unity
3D.
Unity 3D merupakan sebuah game engine yang cukup
complex yang bisa melakukan berbagai macam pengembangan
game berdasarkan platform-nya. Platform-platform yang
support antara lain standalone untuk mac dan Windows,
smartphones android dan IOS, aplikasi web dan lain
sebagainya. Sehingga menjadikan Unity 3D sebagai salah satu
Software Game Development yang populer di kalangan
pengembang game. Seperti halnya Software lain pada
umumnya, Unity 3D juga memiliki berbagai macam lisensi
berdasarkan kebutuhan si pembuat game mulai dari yang free
license hingga lisensi untuk studio. Berbagai macam kategori
lisensinya antara lain:

4
 Personal

Untuk yang ingin mencoba membuat game sederhana sendiri,


kategori ini sangatlah cocok untuk di gunakan karena pada
kategori ini menyediakan 2 lisensi yaitu untuk personal edition
yang mana orang-orang yang menggunakan lisensi ini tidak di
kenakan biaya atau free license.

 Enterprise
Kategori ini tersedia untuk sebuah organisasi atau perusahaan
dan juga sebuah team yang ingin mendapatkan full support dari
Unity seperti upgrade, discount, source code licensi, on demand
support dan banyak lagi lainnya.

5
Dengan Kategori-kategori yang di sediakan membuat
Unity sebagai multiplatform game engine dapat menyentuh
berbagai kalangan masyarakat yang ingin mengembangkan
game baik 2D maupun 3D dengan menggunkan Unity.

1.2 Sejarah Unity

Pembangunan benar-benar mulai berkembang saat Joachim


dan Nicholas menyewa sebuah flat di Kopenhagen. Di ruang
bawah tanah, ketiganya mulai mengembangkan apa yang akan
menjadi salah satu perangkat lunak yang paling berguna di
industri video game. [1]
Setelah dua tahun melakukan coding, dan banyak malam
tanpa tidur, Unity hampir memulai peluncuran dan tim tersebut
memutuskan bahwa mereka perlu membuat game komersial
[1]
lengkap dengan menggunakan mesin baru mereka. OTEE
menghabiskan waktu lima bulan untuk membuat game yang
disebut Gooball menggunakan mesin baru, yang masih dalam

6
versi beta. Gooball diterbitkan pada bulan Maret 2005 oleh
[2]
Ambrosia Software. OTEE mempekerjakan lebih banyak
pengembang untuk memperbaiki Unity sebelum rilis awal 1.0
pada bulan Juni 2005.
Versi Unity pertama yang tersedia untuk umum hanya
mendukung proyek yang akan dijalankan di Mac OS X. Baru
pada versi 1.1, Unity mendukung ekspor ke Microsoft Windows
dan browser web. Versi 1.1 juga menambahkan dukungan untuk
plugin C / C ++ eksternal, yang memungkinkan pengembang
untuk menggunakan perangkat keras dan perangkat lunak yang
tidak didukung oleh Unity. Tim menghabiskan tiga bulan
berikutnya untuk melakukan debug, mengoptimalkan, dan
menciptakan solusi untuk Personal Computer (PC) yang lebih
tua yang diganggu dengan bug kartu grafis dan masalah driver.
Masalah ini diintegrasikan ke dalam rilis Unity 1.5.[4]
Dua tahun kemudian, Unity versi 2.0 dirilis. Fokus dari rilis
ini adalah untuk memperkuat dukungan Windows dan
meningkatkan kompatibilitas pemain web di seluruh platform.
Untuk mencapai hal ini, tim menambahkan dukungan Microsoft
DirectX, yang telah terinstal pada sistem Windows Vista, seperti
yang diajukan ke OpenGL, yang harus di download secara
[2]
terpisah. Fitur utama lainnya termasuk dalam rilis ini
termasuk: streaming web, bayangan lunak real-time, jaringan,
Unity Asset Server, dan sistem pengenal berbasis kode baru. [2]
Unity 2.0 dirilis pada Konferensi Pengembang Unite 2007.
[2]
Unity Technologies memutuskan untuk mengembangkan

7
versi Unity yang memungkinkan penerbitan untuk iPhone.
Dipasarkan sebagai produk terpisah, Unity iPhone dirilis pada
bulan Desember 2008 dan tersedia dalam versi Basic dan Pro.
[5]
Antara tahun 2008 dan 2009, Tim Unity, yang sekarang
dikenal sebagai Unity Technologies, melihat bahwa pelanggan
mereka membeli komputer Macintosh untuk menggunakan
Unity. Unity Technologies meluncurkan versi pertama Unity
dengan dukungan Windows (Unity 2.5) pada Konferensi
Pengembang Game 2009.
Rilis besar berikutnya adalah versi 3.0 pada tanggal 27
September 2010. [6] Pembaruan ini membawa banyak fitur yang
dikehendaki termasuk penyatuan editor, pencahayaan,
rendering yang ditangguhkan, debugging tingkat rendah, dan
[6]
filter audio FMOD. Pada tanggal 22 Desember 2011, Unity
Technologies memulai versi beta pertama untuk Unity 3.5. Rilis
terbaru Unity 3.5 diterbitkan pada tanggal 14 Februari 2012. [5]
Unity Technologies membuka pre-order untuk Unity 4 pada
tanggal 18 Juni 2012. Rilis berikutnya dalam siklus Unity sekali
lagi membawa banyak fitur baru, termasuk teknologi animasi,
penyebaran Flash, preview penerbitan Linux, dan sistem partikel
Shuriken. Rilis terakhir dari Unity 4.0 menjadi tersedia bagi
pengembang untuk diunduh pada 13 November 2012. Versi
berikutnya dari Unity 4.3, menyertakan dukungan out-of-the-
[7]
box untuk sprite dan pengembangan game 2D. Pengembang
dapat mulai membuat game 2D pada tanggal 12 November 2013
saat Unity 4.3 diluncurkan ke publik. [7]

8
Unity Technologies dibangun pada tahun 2004 oleh
David Helgason (CEO), Nicholas Francis (CCO), dan Joachim
Ante (CTO) di Copenhagen, Denmark setelah game pertama
mereka GooBall, gagal lagi dalam meraih sukses. Nilai dari
sebuah engine dan tool dalam pengembangan game serta
berencana untuk membuat sebuah engine yang dapat digunakan
oleh semua orang dengan harga yang terjangkau. Unity
Technologie mendapat bantuan dana dari Sequoia Capital,
WestSummit Capital, and iGlobe Partners. Kesuksesan Unity
yaitu untuk memenuhi kebutuhan developer yang tidak dapat
membangun game engine mereka sendiri atau membeli lisensi
game engine yang terlalu mahal. Fokus terletak pada
“Democratize game Development” atau diterjemahkan sebagai
“Demokrasi Pembangunan Game” dan membuat sebuah
pembangunan game baik dalam bentuk 2D maupun 3D yang
bisa dicapai oleh banyak orang.
Pada tahun 2008, Unity melihat kebangkitan iPhone dan
menjadi game engine pertama yang melakukan dukungan penuh
pada platform tersebut. Unity sekarang digunakan oleh 53.1%
developers (termasuk mobile game developer) dengan ratusan
game yang dirilis baik untuk iOS maupun Android. Pada tahun
2009, Unity mulai meluncurkan aplikasinya scara gratis,
sehingga jumlah developer yang mendaftar melonjak drastis.
Pada tahun 2012, Unity mencapai popularitas yang sangat tinggi
dengan lebih dar 1 juta developer. Unity sangat mampu melihat
berbagai peluang dan perubahan. Hal inilah yang

9
menjadikannya sbagai game engine “termurah” yang paling
banyak digunakan oleh seluruh orang. Unity dapat digunakan
untuk perorangan dan tidak selalu harus digunakan oleh sebuah
studio game yang berjumlah ratusan orang.
Sejak Unity secara resmi dirilis sebagai Unity versi
1.0.1, banyak pembaharuan (update), upgrades dan fitur yang
telah ditambahkan selama tahun perilisannya tersebut dan Unity
terus berkembang secara terus – menerus. Sekarang ini Unity
sudah ada pada versi 5.3.4 yang di rilis tanggal 15 maret 2016.
Jika ingin mencobanya silahkan men-download di situs
resminya. [8]

1.3 Instalasi Unity 3D

Untuk menjalankan Software Unity 3D dibutuhkan


spesfikasi umum pada pengembang dan pengguna. Spesifikasi
tersebut antara lain :
A. Untuk Pengembang
Sistem 1. Windows 7 SP1+, 8, 10; Mac OS
Operasi X 10.8+.
2. Tidak support untuk Windows XP
& Vista dan server versi Windows
& OS X
3. Mac computer OS X versi 10.9.4
dan Xcode 7.0 or higher
4. Windows 8.1 (64-bit)
5. Windows Phone 8.1: Visual
Studio 2013 dan Windows 8.1
SDK;
GPU 1. Graphics card dengan DX9
(shader model 3.0)
2. DX11 dengan feature level 9.3

10
B. Untuk Menjalankan gameUnity
Sistem 1. Windows XP SP2+, Mac OS X
Operasi 10.8+, Ubuntu 12.04+, SteamOS+.
2. iOS player requires iOS 7.0 atau
diatasnya (dropping6.0).
3. Android: OS 4.1 atau diatasnya,
ARMv7 (Cortex) CPU dengan
mendukung NEON atau Atom
CPU, OpenGL ES 2.0 atau
diatasnya
4. WebGL: versi terbaru dari Firefox,
Chrome, Edge atau Safari.
5. Windows Phone: 8.1 atau
diatasnya.
6. Windows Store Apps: 8.1 atau
diatasnya.
GPU 1. Graphics card: DX9 (shader model
3.0)
2. DX11 dengan feature level 9.3

Sebelum Melakukan Instalasi ada baiknya jika sejenak


melihat kebutuhan sistem yang di butuhkan untuk dapat
menjalankan Unity. Karena untuk mendapatkan Unity langsung
dari situs resminya haruslah men-download dengan Unity
assistance manager yang akan membantu kita dalam instalasi
dan kecepatan download-nya terbatas, berbeda jika
menggunakan eksternal downloader. Namun yang perlu di
perhatikan adalah kebutuhan sistem di atas adalah yang
minimal. Semakin kompleks game yang di buat maka semakin
tinggi pula kebutuhan sistem yang di perlukan. Jika kebutuhan

11
sistem sudah memadai maka langkah selanjutnya adalah men-
download Unity dari situs resminya.

1.3.1 Download Unity 3D

Untuk melakukan langkah ini pastikan terlebih


dahulu koneksi internet stabil lalu bukalah web
browser. Berikut ini langkah-langkah yang di
perlukan untuk men-download Unity 3D.
1. Sebelum menginstal, sebaiknya download terlebih
dahulu master Unity disitus resmi Unity
https://Unity3D.com/get Unity/Download/archive.
Silakan pilih versi yang sesuai dengan kebutuhan.

12
2. Proses downloading archive menggunakan Internet
Download Manager, pastikan Unity telah berhasil
di download. Disini akan menggunakan personal
edition alias gratis bagi yang ingin
menggunakannya dengan batasan-batasan tertentu.
Terdapat tombol free download pada bagian bawah
personal edition, klik bagian tersebut.

3. Klik tombol Download installer yang tertera dan


dengan segera men-ownload Unity.
4. Jika telah selesai bukalah Software yang baru saja
di download.

5. Lalu akan muncul jendela baru yang akan


membantu kita men-Download Unity 3D.

13
6. Klik next

7. Jangan lupa untuk menceklis “I accept the terms of


the license agreement” then klik next.

14
8. Langkah selanjutnya adalah pilih sesuai dengan
spesifikasi pada laptop atau komputer, terdapat 2
pilihan yaitu 64 bit dan 32 bit.

9. Selanjutnya akan tampil jendela yang memberikan


kita pilihan untuk men-Download komponen Unity
apa saja tergantung platform apa yang sedang di
kembangkan. Jika bingung ikuti saja gambar di
bawah lalu pilih next.

15
10. Setelah itu Unity akan menanyakan apakah kita
akan langsung menghapus installer setelah di instal
apa tidak dan dimana tempat meletakkan installer-
nya. Klik next untuk melanjutkan.

16
11. Unity memulai proses download komponen-
komponennya, Tunggulah hingga selesai.

12. Jika semua komponen telah selesai di download


maka file-filenya akan terlihat di tempat dimana
kita men-setting sebelumnya.
13. Selanjutnya adalah tahapan menginstal Unity di
computer.

1.3.2 Menginstal Unity di computer

Setelah men-download komponen-komponen yang


lumayan menyita waktu akhirnya tibalah saatnya
untuk memasang Unity di komputer. Selanjutnya
perhatikan langkah-langkah berikut:
1. Setelah master Unity telah di download, maka
langkah selanjutnya adalah double klik pada file
master untiy yang telah di download, tunggu
beberapa detik sampai loading selesai hingga

17
muncul tampilan setup Unity, seperti gambar
dibawah ini:

2. Pada halaman “Welcome to the Unity setup” pilih


tombol next untuk memulai proses instalasi.
3. Selanjutnya, akan muncul halaman License
Agreement, pilih tombol I Agree. Seperti gambar
dibawah ini:

18
4. Kemudian akan dilanjutkan ke proses yang
selanjutnya, yaitu halaman Choose Components,
kemudian pilih tombol next.

5. Langkah selanjutnya yaitu pada halaman Choose


Install Location, secara default program instalasi
akan diletakkan pada Drive C:\Program
File\Unity. Abaikan saja setinggan deafult seperti
itu, kemudian klik install untuk melanjutkan proses
instalasi.

19
6. Tunggu hingga proses selesai, jika proses instalasi
telah selesai tekan tombol next.

7. Setelah itu, pilih tombol finish. Maka secara


otomatis aplikasi Unity akan dibuka dan
dijalankan.

20
8. Untuk melakukan aktivasi, maka membutuhkan
jaringan internet agar dapat online dan Login
terlebih dahulu, jika belum memiliki akun bisa
mendafar dengan menekan “Create one”. Jika
sudah memiliki akun langsung saja “Sign in”
menggunakan E-mail dan Password kemudian klik
tombol “Login”.

9. Jika sudah berhasil Login maka akan masuk


kedalam halaman “Licence Managament”,

21
kemudian pilih Unity Personal Edition untuk
menggunakan Unity.

10. Saat menekan tombol next pada halaman “Licence


Managament”, maka muncul pop up licence
Managament, kemudian pilih tombol “I agree”
untuk melanjutkan.

11. Selanjutnya adalah halaman Unity survey,


diharapkan untuk megisi form survey. Kemudian
klik tombol next.

22
12. Tunggu sebentar, proses Aktivasi akan berlangsung
dan hasilnya seperti digambar.

13. Sampai disini proses aktivasi selesai, start using


unit, aplikasi siap digunakan.

23
14. Maka akan muncul halaman awal aplikasi
Unity3D.

24
BAB II
MEMBUAT PROJECT BARU

Untuk membuat game langkah pertama yang harus di


lakukan adalah membuat konsep game tersebut, apakah game ini
nantinya akan di mainkan di PC, Mobile, Web dan lain sebagainya.
Menentukan hal ini sangat penting di Unity karena dengan begitu kita
tidak akan kesulitan nantinya jika saat melakukan pengetesan. Karena
jika kita membuat Project dengan setting PC padahal akan di
mainkan di smartphone maka untuk input ke dalam game nya
berbeda. Jika PC menggunakan keyboard dan mouse sedangkan jika
smartphone menggunakan touchscreen. Karena game Narkono
berbasis andorid maka kita akan membuat Project baru dengan
pengaturan untuk android.

2.1 Membuat Project Baru Di Unity

Bukalah Unity engine dengan dengan double click icon


Unity yang terdapat di desktop. Setelah Terbuka maka kita akan
melihat tampilan menu yang mana terdapat 2 pilihan yaitu membuat
Project baru atau membuka Project yang sudah ada. Untuk membuat
Project baru untuk android maka ikutilah langkah-langkah berikut
ini.

25
1. Pada bagian pojok kanan atas kita akan melihat 3 pilihan yaitu
new, open dan sign in.

 New digunakan untuk membuat Project baru


 Open di gunakan untuk membuka Project yang sudah ada
 Sign in untuk menggunakan Unity secara online dan
tersambung ke website resminya.

2. Setelah kita memilih tombol New maka tampilan akan berganti


ke new porject dimana kita dapat mengisikan Nama Project,
Tempat Penyimpanan dan memilih package yang akan di import.
Package sendiri terbagi menjadi 3D dan 2D. Namun kita juga
dapat mengimportnya nanti setelah berada di tengah-tengah
pembuatan. Silahkan isikan sesuai kebutuhan lalu klik tombol
Create Project.

26
3. Unity akan restart dan mulai memuat Project. Jika memasukkan
banyak asset package maka loadingnya akan semakin lama.
Karena tadi kita tidak mengimport apa-apa jadi akan lebih cepat.
Setelah selesai akan muncul jendela unty beserta tampilan yang
meliputi menu bar, game Scene, play Scene, hirarki dan lain
sebagainya.

27
4. Sebelum kita membuat game, alangkah baiknya jika kita
mengenal terlebih dahulu interface dari Unity ini sehingga
nantinya kita dapat lebih mudah dalam proses pembuatan game.

2.2. Setting Project Untuk Platform Android di Unity 3D

Kita sudah berhasil membuat Project baru di Unity. Secara


default Unity akan menempatkan Project kita untuk pembuatan web
player seperti halnya game-game yang ada di facebook dan di website
-website yang memang di rancang untuk game yang dapat di mainkan
di dalam browser. kita dapat mengetahui settingan Project yang kita
gunakan dengan melihat title bar.

Dari title bar seperti yang di tunjukkan oleh gambar di atas, kita
dapat mengetahui versi Unity yang di gunakan, nama Scene, nama
Project dan settingan Project. Versi Unity yang di gunakan adalah
versi personal dengan system 64 bit. Scene yang sedang terbuka
adalah adventure for future karena kita sudah membuat Project.
Berikut langkah langkah untuk mem-build project:

28
1. Klik file > Build Settings

2. Maka akan muncul tampilan Build setting. Di sana terdapat


Scenes in Build yang nantinya kita akan meletakkan Scene-
Scene yang kita buat di sana dan mengurutkannya. Scene
yang teratas adalah yang pertama kali muncul. Di bawahnya
terdapat berbagai macam platform yang dapat di jalankan
game-game Unity.

29
BAB III
MEMPERSIAPKAN ASSET

3.1 Karakter
Desain karakter bertujuan untuk memudahkan dalam
mendeskripsikan sifat dan tampilan sebuah karakter. Sehingga dalam
memilih bentuk karakter harus disesuaikan dengan target dan tujuan
game yang akan dibuat, berikut langkah mendownload karakter pada
Unity Asset Store
1. Klik dan pilih asset store dan ketikkan pada koloam
search “city”

2. Pilih character pack seperti gambar dibawah ini

30
3. Pilih download untuk mendapatkan character pack
tersebut

4. Ketika keluar table untuk mengimport unity package


pilih all>lalu klik import

31
5. Tunggu proses import package selesai

6. Klik import

7. Pilih supercyan character > prefabs>high Quality lalu


drag gambar kubus berwarna biru ke dalam scene.

8. Selesai.

32
3.2 Narkoba
1 Pilih modelling pada toolbar yang tersedia di atas pojok
kiri untuk membuat modelling kapsul untuk
environment Narkoba pada game Narkono

2 Pilih Polygon Cilynder untuk membuat kapsul


(Narkoba).

3 Hasilnya akan seperti ini

33
4 Aturlah subdivision axis, height dan caps menjadi 12, 4,
4 untuk membentuk face pada kapsul (Narkoba).

5 Polygon Cylinder sudah berbentuk kapsul (Narkoba)


hanya saja tinggal merancang bentuk yang diinginkan.

6 Rotate kapsul (Narkoba) tersebut dengan menekan


tombol E pada keyboard.

34
7 Atur panjang dengan cara menekan tombol R dan Tarik
ke kanan atau ke kiri untuk memperpanjang ukuran
kapsul (Narkoba) tersebut.

8 Klik kanan tahan lalu pilih assign material lalu pilih blin
untuk memberikan tekstur pada kapsul (Narkoba)

35
9 Beri warna merah pada menu colour dan klik warna
merah

10 Kapsul (Narkoba) sudah berhasil diberi tekstur


berwarna merah

36
3.3 Buah Apel
1. Pilih curve lalu pilih EP Curve Tool pada kolom
surfaces.

2. Tekan spasi pada keyboard lalu pilih front view (kanan


bawah)

3. Lalu buatlah pola seperti berikut.

37
4. Setelah selesai, kembali lagi ke view awal (kanan atas)

5. Pada kategori pilih surface, lalu pilih menu bar surface


dan klik kotak pada revolve.

6. Langsung klik apply

38
7. Maka akan tampil seperti ini dengan memilih smooth
shade all.

8. Lalu gunakan move tool untuk memindahkan apel


tersebut sehingga Nampak pola awal tadi.

39
9. Tekan klik pada pola awal lalu pilih Control vertex

10. Lalu pilih move tool dan klik pada vertex dan gerakkan
sesuai keinginan agar berbentuk sebuah apel.

40
11. Setelah itu tahan klik kanan pada apel lalu drag pilih
Control vertex.

12. Pilih empat titik ini

41
13. Lalu gunakan move tool untuk menurunkannya ke
bawah.

14. Setelah selesai pilih polygons dan klik polygons


cylinder.

15. Lalu bentuklah sebuah tabung

42
16. Setelah itu pindahkan ke atas apel sehingga membentuk
tangkai apel.

17. Agar terlihat realistis tangkai nya dibengkokkan yaitu


pertama kita tambah facenya terlebih dahulu. Pada
cetegori dipojok kiri atas ganti dengan polygons lalu
pilih menu bar surface dan pilih insert edge loop tool

43
18. Buatlah seperti digambar

19. Lalu pilih face dan blok bagian atas

20. Gunakan rotate tool untuk membengkokkan tangkainya

44
21. Sehingga seperti ini

22. Lalu kita akan memberikan warna agar terlihat lebih


realistis tahan klik kanan lalu pilih assigne new
material.

45
23. Pilih blinn

24. Klik pada color lalu pilih warna yang menurut anda
mirip apel

46
25. Maka hasilnya akan seperti ini

26. Apabila dilihat dengan render view

47
3.4 Environment Kota
Environment Kota dalam game narkono ini adalah hasil
download di asset store pada Software Unity. Cara download karakter
pada asset store Unity adalah sebagai berikut.
1. Klik dan pilih asset store dan ketikkan pada kolom
search “city”

48
2. Pilih Simple Town Lite lalu klik Download untuk
mendapatkan asset city.

49
3. Jika proses download telah selesai, import file tersebut
pilih import allimport dan tunggu proses import
asset city tersebut.

50
4. Pada folder asset terdapat Scene city lalu drag ke
jendela Hierarchy. Susun city tersebut sehingga
terlihat panjang.

51
5. Proses pembentukan kota selesai.

52
BAB IV
MEMBUAT SCENE

4.1 Membuat Scene Main menu


1. Buka Project Unity

2. Buat Scene baru pada Project Unity, dengan cara klik kiri pada
hierarchy  Create  UI  Canvas.

53
3. Langkah ketiga yaitu lakukan hal yang sama untuk membuat
panel yang berada didalam Canvas yang berfungsi untuk
membuat panel menu.

4. Pilih warna panel untuk memudahkan membuat menu.

54
5. Lakukan hal yang sama pada langkah awal membuat Canvas
namun pilih text untuk memberikan nama pada menu.

6. Buatlah Button bermain dengan cara klik kiri pada Create 


pilih UI  lalu klik Button.

55
7. Tukar warna Button seperti gambar berikut

8. Ganti ukuran Button dengan lebar 300 dan tinggi 100

56
9. Lanjutkan hal yang sama untuk membuat menu Button
Pengaturan dan menu Button Keluar.

10. Pilih font yang sesuai dengan keinginan dengan cara blok
text – klik font pada menu Inspector yang ada di sebelah
kanan menu bar pada Unity – lalu ketikkan jenis font yang
diinginkan – lalu berikan warna pada text tersebut.

57
11. Buatlah isi dari menu bermain dengan panel pilih level yaitu
level 1 – level 2 – level 3.

58
12. Pada menu pengaturan yang berisi panel musik buatlah
panel slider agar dapat digeser ke kanan dan ke kiri atau
on/Off pada musik.

59
13. Buat Audio Source untuk memutar musik dengan cara klik
kiri pada toollbar Create – pilih Audio – klik Audio Source.

14. Pilih musik yang akan diputar sebagai musik dalam game.

60
15. Pada main menu Control pilih Audio Source untuk
menampilkan Audio Source yang berfungsi sebagai pemutar
musik.

16. Pada slider musik select Canvas didalam on value


changed(single).

61
17. Untuk mengaktifkan tombol pilih Canvas pada tombol
Button script.

62
18. Pilih fungsi pada tombol Button bermain dengan cara klik
no function untuk mengaktifkan – main menu Control-
ChangeMenu(int).

63
19. Pada slider musik atur dan mengaktifkan fungsi slider music

64
20. Pada tombol keluar untuk mengaktifkan tombol tersebut klik
no function pada Button script – pilih keluar – lalu klik
DOkeluar.

65
21. Mengaktifkan fungsi pilih level dalam menu bermain
dengan cara klik level 1 pilih Canvas

22. Pada kolom no function  pilih MainMenuControl 


LoadAScene (string),

66
23. Kemudian ketik Level 1 pada kolom dibawahnya

24. Pada menu bermain kita akan mengaktifkan fungsi tombol


kembali dengan cara klik no function – main menu Control
– GoHome ().

25. Menu Utama telah selesai.

67
4.2 Membuat Scene Level 1
1. Select prefab jalan (Road_L & Road_R) kemudian drag ke
Scene

2. Select prefab jalan kemudian copy (ctrl + d) dan posisikan


tepat disamping prefab sebelumnya seperti gambar

68
3. Ulangi langkah diatas hingga beberapa kali, hingga terlihat
seperti gambar berikut

4. Kemudian masukkan prefab bangunan dan susun pada sisi


kiri dan kanan jalan

69
5. Gabungkan Environment bangunan dan jalan dengan cara
klick Create pada hirarki  Create empty, rename jadi
“kota 1”

6. Pada jendela Hierarchy select semua Environment pada


Scene dan masukkan ke “kota 1”

70
7. Klick dan tahan kota 1 kemudian tarik ke jendela Project
untuk menjadikkannya prefab, tukar nama prefab menjadi
“kota mode 1”

8. Select dan copy (tekan ctrl+d pada keyboard) kota mode 1,


pada jendela Scene posisikan hasil copy kota 1 tepat
disampingnya, tukar susunan bangunan dan tukar nama
menjadi kota mode 2

71
9. Select “kota mode 2” pada Hierarchy dan masukkan ke
dalam folder prefab pada jendela Project.

10. Ulangi langkah 8 dan 9 untuk membuat prefab “kota mode


3”

72
11. Select asset jeruk drag dan drop ke dalam jendela Scene,
posisikan di tengah tengah jalan seperti gambar

12. Select jeruk, pada jendela Inspector klik Add Component


 ketik sphere collider dan pilih sphere collider

73
13. Kemudian klik add Component dan tambahkan Audio
Source

14. Pilih sound effect makanan sehat di kolom AudioClip

74
15. Klik Add Component dan ketik collectable, kemudian pilih
script collectable

16. Pada Inspector script collectable ketik 1 pada kolom value


sedangkan pada kolom rotate speed ketik 20

75
17. Tambahkan tag MakananSehat dengan cara klik kolom tag
pada jendela Inspector  Add Tag

18. Kemudian klik tombol + pada Inspector dan ketik


MakananSehat

76
19. Setelah itu klik prefab jeruk, klik kolom tag dan pilih
MakananSehat.

20. Copy (tekan ctrl + d pada keyboard) jeruk dan susun pada
sepanjang jalan seperti gambar

77
21. Select prefab narkoba dan masukkan ke dalam Scene

22. Tambahkan Component Audio Source, klik Add


Component dan ketik Audio Source kemudian tekan Enter

78
23. Pada kolom audio clip pilih sound effect narkoba seperti
gambar berikut

24. Tambahkan tag pada prefab narkoba dengan klik kolom tag
pada Inspector  add tag

79
25. Klik tombol + dan ketik narkoba kemudian klik save

26. Selanjutnya select prefab narkoba, pada jendela Inspector


klik kolom tag dan pilih narkoba

80
27. Copy (tekan ctrl + d pada keyboad) prefab narkoba dan
susun di sepanjang jalan seperti gambar

28. Mengganti sky box tampilan langit agar terlihat lebih cerah,
klik Window  Lighting  Settings

81
29. Kemudian akan tampil jendela lighting, pada kolom skybox
Material pilih Mat_Sky

30. Tambahkan trigger menang pada ujung jalan dengan cara


klik GameObject3D Object sphere

82
31. Posisikan seperti gambar dibawah, setelah itu ganti nama
menjadi Trigger Sukses

32. Aktifkan sphere menjadi trigger dengan cara centang is


Trigger pada sphere collider dan hilangkan centang pada
mesh render agar trigger menjadi transparan

83
33. Select karakter player dan masukkan kedalam Scene
posisikan seperti gambar

34. Tambahkan tag pada karakter player dengan klik pada


kolom tag kemudian pilih Player

84
35. Tambahkan karakter Controller, pada Inspector klik Add
Component, ketikkan karakter Controller kemudian tekan
Enter

36. Atur ukuran karakter Controller hingga sesuai dengan


karakter player seperti gambar berikut

85
37. Tambahkan komponen Rigidbody dengan klik Add
Component ketikkan Rigidbody  Enter

38. Klik Add Component ketik animator dan tekan Enter untuk
menambahkan komponen animator pada karakter player

86
39. Untuk menjalankan dan mengatur animasi diperlukan
sebuah animator Controller, membuat animator Controller
klik Create pada jendela Project  Animator Controller

40. Ganti nama animator Controller dengan narkono

87
41. Kemudian klik karakter, pada kolom Controller di jendela
Inspector isi animator Controller dengan narkono

42. Kemudian pada kolom avatar masukkan


free_male1Avatar

88
43. Selanjutnya ganti culling mode dengan Cull Update
Transform

44. Klik Add Component dan ketik Audio Source, tekan Enter
untuk menambahkan Audio Source

89
45. Pada kolom Audio Clip pilih Daydream Anatomy -8 Bit
heroes – 01 Combat

46. Membuat UI, pada jendela Hierarchy klik Create  UI 


Canvas

90
47. Membuat tombol pause, Create  UI  Button

91
48. Atur ukuran tombol seperti gambar dibawah

49. Geser tombol ke bagian kiri atas Canvas

50. Pada jendela Inspector ganti warna tombol

92
51. Ganti text Button menjadi ||

52. Ubah font style menjadi bold, font size menjadi 50,
alignment menjadi center& middle dan ganti color menjadi
putih, sehingga terlihat seperti berikut

53. Select Button, pada jendela Inspector, Component Button


script terdapat kolom On Click (), klik tombol +

93
54. Pilih Canvas pada tempat yang di lingkari pada gambar
berikut

55. Pada kolom No function pilih Pause  OnPause ()

94
56. Membuat health slider, pada Hierarchy klik Create  UI
 Slider

95
57. Karna pada bagian ini tidak dibutuhkan Handle slider,
maka pada jendela Hierarchy, klik kanan Handle slider 
delete

58. Atur ukuran slider, width 250, height 150

96
59. Kemudian pada slider script ganti Min value menjadi 0,
max value menjadi 3, centang whole numbers dan value 3

60. Klik background pada Hierarchy dan ganti background


slider pada Inspector dengan gambar yang telah disiapkan

97
61. Select fill pada Hierarchy, ganti source image pada jendela
Inspector dengan gambar yang telah disiapkan.

62. Ganti image type menjadi filled, kemudian fill method


menjadi horizontal

98
63. Slanjutnya masukkan health icon, pada Hierarchy klik
Create  UI  Image

64. Posisikan image seperti gambar berikut

99
65. Ganti source image dengan health icon

66. Tambahkan text pada health slider, Create  UI  text

100
67. Ubah text menjadi Health pada Component text script

68. Ganti font dengan PG_Roof Runners_active_bold it

101
69. Atur font size menjadi 40

70. Tukar warna text menjadi putih

102
71. Tambahkan Component shadow, klik Add component,
ketik shadow dan tekan Enter

72. Atur warna shadow dan effect distance seperti gambar


berikut

103
73. Selanjutnya membuat papan skor, pada Hierarchy klik
Create  UI  image

74. Posisikan image di sebelah health slider

104
75. Ganti source image dengan gambar yang telah disiapkan

105
76. Tambahkan text score, pada Hierarchy klik Create  UI
 text, posisikan tepat didepan ScoreBoard

77. Ubah text menjadi Score: 0

106
78. Ganti text font dengan PG_Roof Runners_active_bold it

79. Atur font size menjadi 30, dan paragraph alignment seperti
gambar berikut

107
80. Ganti font color menjadi putih

81. Tambahkan Component shadow, klik add Component ketik


shadow

108
82. Atur effect distance pada komponen shadow seperti gambar
dibawah ini

83. Membuat panel pause, pada Hierarchy klik Create  UI


 panel, ganti nama panel menjadi PanelPause

109
84. Klik Create  UI  Text

110
85. Pada jendela Inspector ganti text menajdi paused

86. Ganti font dengan PG_Roof Runners_active_bold it

111
87. Atur ukuran kotak text pada jendela Scene seperti gambar
berikut

88. Pada jendela Inspector atur font size menjadi 70, ganti
alignment menjadi center dan middle

89. Ganti warna font menjadi putih

112
90. Tambahkan Component shadow dengan klik add
Component ketik shadow dan tekan Enter

91. Atur Component shadow seperti gambar berikut

113
92. Membuat panel pengaturan, klik Create  UI  panel,
ganti nama panel menjadi panelPengaturan

93. Pada jendela Inspector ganti warna panel seperti gambar


berikut

114
94. Tambahkan text, pada Hierarchy klik Create  UI  text

115
95. Atur kotak text seperti gambar berikut

96. Ganti text dengan Pengaturan

97. Ganti font pada jendela Inspector dengan PG_Roof


Runners_active_bold it

116
98. Atur font size menjadi 60

99. Ganti warna font menjadi putih

117
100. Tambahkan Component shadow dengan klik add
Component dan ketik shadow, kemudian tekan Enter

101. Atur effect distance seperti gambar berikut ini

102. Copy text pengaturan dengan menekan ctrl + d pada


keyboard, kemudian geser text seperti gambar dibawah ini

118
103. Ganti text menjadi Musik, atur font size menjadi 40

119
104. Copy (tekan ctrl + d pada keyboard) text musik dan geser
seperti gambar dibawah

120
105. Ganti text menjadi Off

106. Copy text Off dan posisikan seperti gambar berikut

121
107. Ganti text menjadi On

108. Buat musik slider, klik Create  UI  slider

122
109. Posisikan slider diantara text On dan Off

110. Atur ukuran slider, width 150 dan height 100

123
111. Pada Hierarchy select Handle, ganti image source pada
jendela Inspector seperti gambar berikut

112. Perbesar ukuran Handle

124
113. Ganti warna Handle pada jendela Inspector

114. Membuat tombol kembali, pada Hierarchy klik Create 


UI Button

125
115. Pindahkan tombol ke bawah slider

126
116. Atur ukuran tombol seperti gambar berikut

117. Ganti warna tombol pada jendela Inspector

127
118. Tambahkan Component shadow, klik add Component dan
ketik shadow jkemudian tekan Enter

119. Ganti text menjadi Kembali

128
120. Ganti font menjadi PG_Roof Runners_active_bold it

121. Atur font size menjadi 50

129
122. Ganti warna text menjadi putih

123. Tambahkan Component shadow, klik add Component dan


ketik shadow kemudian tekan Enter

130
124. Atur effect distance pada Component shadow

125. Membuat panel menang, select panel pause copy (crtl + d)


dan ganti nama menjadi PanelMenang

126. Ganti warna PanelMenang pada jendala Inspector

131
127. Ganti text PAUSED menjadi SELAMAT ANDA
BERHASIL MENGHINDARI NARKOBA

128. Atur font size menjadi 40

132
129. Pada Hierarchy select ScoreBoard kemudian copy (tekan
ctrl + d pada keyboard), pindahkan ScoreBoard (1) ke
dalam panel menang

130. Pindahkan ScoreBoard (1) ke posisi seperti gambar berikut

133
131. Ganti text pada tombol resume menjadi Main lagi

132. Ganti text pada tombol Pengaturan menjadi Menu Utama

133. Pada hierarcy select PanelMenang dan copy (tekan ctrl+d


pada keyboard), ganti nama menjadi PanelKalah

134
134. Tukar text Selamat Anda Berhasil Menghindari Narkoba
menjadi Maaf Anda Gagal Menghindari narkoba

135
135. Hapus ScoreBoard (1) pada PanelKalah

136. Langkah selanjutnya menentukan fungsi yang akan


digunakan setiap tombol pada masing-masing panel. Yang
pertama panel pause  ButtonResume, pada Inspector
pilih Canvas pada tempat yang di lingkari pada gambar
berikut

136
137. Pada kolom No function pilih Pause  OnUnPause ()

138. Kemudian panel pause  ButtonPengaturan, pada


Inspector pilih Canvas seperti gambar berikut

137
139. Pada kolom No function pilih Pause  OnUnPause ()

140. Pada Button script di kolom On Click () pilih ButtonKeluar

138
141. Pada kolom Function pilih keluar  DOkeluar ()

142. Selanjutnya PanelPengaturan  Slider, pada slider script


di kolom On Klik () pilih Audio Source

139
143. Pada kolom Function pilih AudioSource  Volume ()

144. Berikutnya PanelPengaturan  ButtonKembali, pada


Button script di kolom On Click () pilih Canvas

140
145. Pada kolom Function pilih MainMenuControl 
ChangeMenu (int), isikan 0 (angka nol) pada kolom yang
dilingkari pada gambar

146. Selanjutnya PanelMenang  Button mainLagi pilih


Canvas pada tempat yang di lingkari pada gambar berikut

141
147. Pada kolom Function pilih MainMenuControl 
LoadAScene (), ketik level 1 pada kolom dibawahnya

142
148. Berikutnya PanelMenang  Button MenuUtama pilih
Canvas pada tempat yang di lingkari pada gambar berikut

149. Pada kolom Function pilih MainMenuControl 


LoadAScene (string), ketik MenuUtama pada kolom
dibawahnya

143
150. Selanjutnya untuk PanelKalah langkah yang dilakukan
sama dengan PanelMenang.

151. Membuat game manager, pada Hierarchy klik Create 


Create empty. Ganti nama GameObject menjadi
GameManager

152. Selanjutnya membuat player Control, klik Create 


Create empty, ganti nama menjadi PlayerControl

144
153. Save Scene dengan klik file  Save Scene as

154. Ganti dengan nama Level 1 kemudian klik save

145
4.3 Membuat Scene level 2
1. Scene Level 2 merupakan Scene Level 1 yang dilakukan
beberapa perubahan terhadap susunan Environment-nya.

2. Langkah pertama yaitu menggandakan seluruh


Environment (kota, jeruk dan narkoba), select kota, jeruk
dan narkoba kemudian copy (ctrl + d). posisikan tepat di
samping kota sebelumnya

146
3. Tambahkan prefab narkoba untuk meningkatkan kesulitan
dalam bermain, select narkoba kemudian copy(tekan ctrl +
d pada keyboard) dan atur posisinya.

4. Select trigger sukses dan pindahkan ke ujung kota

147
5. Save Scene dengan nama Level 2, klik file  save scene as
 ketik Level 2  klik save

148
4.4 Membuat Scene level 3
1. Perbedaan Scene Level 2 dan Level 3 terletak pada
kecepatan berlari player
2. Langkah pertama yang dilakukan yaitu menghapus script
PlayerMotor, select karakter player klik pada bagian yang
dilingkari pada gambar dibawah  remove component

3. Tambahkan script PlayerMotor3, add Component


PlayerMotor 3

149
4. Pilih karakter player untuk mengisi kolom Controller

5. Hapus script PlayerHealth

6. Tambahkan script PlayerHealth3, kemudian isi kolom


Playerhealth3 seperti gambar dibawah

150
7. Select game manager pada Hierarchy, hapus script
GameOverManager di Inspector

8. Tambahkan script GameOverManager3, kemudian isi


kolom GameOvermanager3 seperti gambar dibawah

151
9. Save Scene dengan nama Level 3

152
BAB V

SCRIPTING

Pada bab sebelumnya kita telah mengetahui cara untuk


membuat Scene atau content game, selanjutnya yaitu membuat semua
content yang ada berfungsi dengan menggunakan script sebagai
berikut:

5.1 Scripting Camera Motor

Scripting camera motor ini berfungsi agar kamera dapat mengikuti


player secara otomatis ketika player berlari kamera akan otomatis
mengikuti.

1. Select camera, pada inspector klik add component  ketik


CameraMotor klik new script

2. pada kolom language pilih C Sharp  klik Create and Add

153
3. Double click pada script, maka secara otomatis akan
terbuka applikasi MonoDevelope, ketik script berikut:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraMotor : MonoBehaviour {

private Transform lookAt;


private Vector3 startOffset;
private Vector3 moveVector;

private float transition = 0.0f;


private float animationDuration = 3.0f;
private Vector3 animationOffset = new
Vector3 (0, 3, 0);

// Use this for initialization


void Start () {
lookAt =
GameObject.FindGameObjectWithTag("Player").trans
form;

154
startOffset = transform.position -
lookAt.position;
}

// Update is called once per frame


void Update () {

moveVector = lookAt.position +
startOffset;

//X
moveVector.x = 0;

//Y
moveVector.y = Mathf.Clamp(moveVector.y,
3, 5);

if(transition > 1.0f)


{
transform.position = moveVector;
}
else
{

155
transform.position =
Vector3.Lerp(moveVector +
animationOffset,moveVector,transition);
transition += Time.deltaTime * 1 /
animationDuration;
transform.LookAt(lookAt.position +
Vector3.up);
}
transform.position = moveVector;
}
}

5.2 Scripting Collectable

Pada script ini adalah berfungsi ketika player menyentuh narkoba


ataupun makanan sehat, benda tersebut akan hilang otomatis Karena
tersentuh oleh tubuh player, script ini akan ditambahkan pada
component jeruk.

1. Select jeruk, pada inspector klik add component  ketik


Collectable klik new script

2. pada kolom language pilih C Sharp  klik Create and Add

156
3. Double click pada script, maka secara otomatis akan
terbuka applikasi MonoDevelope, ketik script berikut:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class collectable : MonoBehaviour


{

public int value;


public float rotateSpeed;

// Update is called once per frame


void Update()
{
gameObject.transform.Rotate(Vector3.up *
Time.deltaTime * rotateSpeed);
}

void OnTriggerEnter()
{

157
GameManager1.instance.Collect(value,
gameObject);
AudioSource source =
GetComponent<AudioSource>();
source.Play();
}
}

4. Kemudian save (ctrl + s), kembali ke unity maka tampilan


jendela inspector akan berubah, isikan value 1 dan rotate
speed 20

5.3 Scripting GameManager

Script GameManager berfungsi untuk menghitung makanan sehat


yang disentuh player kemudian menampilkannya sebagai score

1. Select GameManager, pada inspector klik add component


 ketik Collectable  klik new script

2. Pada kolom language pilih C Sharp  klik Create and Add

158
3. Double click pada script, maka secara otomatis akan
terbuka applikasi MonoDevelope, ketik script berikut:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GameManager : MonoBehaviour {

public static GameManager instance = null;


public GameObject scoreTextObject;
public GameObject winScoreObject;

int score;
int finalScore;
Text scoreText;
Text winText;
private void Awake()
{
if (instance == null)

159
instance = this;
else if (instance != null)
Destroy(gameObject);

scoreText =
scoreTextObject.GetComponent<Text>();
winText =
winScoreObject.GetComponent<Text>();

public void Collect(int passedValue,


GameObject passedObject)
{

passedObject.GetComponent<Renderer>().enabled =
false;
Destroy(passedObject, 1.0f);
score = score + passedValue;
scoreText.text = "Score: " +
score.ToString();

finalScore = score;
winText.text = "Score: " +
finalScore.ToString();
}
public void damaging(GameObject
passedObject)
{

passedObject.GetComponent<Renderer>().enabled =
false;
Destroy(passedObject, 1.0f);
}
}

160
4. Masukkan score text pada kolom manager seperti gambar
dibawah

5. Masukkan winScore text pada kolom manager seperti


gambar dibawah

5.4 Scripting GameOverManager


Untuk menampilkan panel/ layer kalah jika health pada player itu 0
atau mati digunakan script dibawah ini.
1. Select GameManager, pada inspector klik add component
 ketik Collectable  klik new script

2. Pada kolom language pilih C Sharp  klik Create and Add

161
3. Double click pada script, maka secara otomatis akan
terbuka aplikasi MonoDevelope, ketik script berikut:

using System;
using UnityEngine;

public class GameOverManager : MonoBehaviour


{
public PlayerHealth playerHealth;
public float restartDelay = 2f;
public GameObject KalahPanel;
public GameObject AudioSource;
float restartTimer;

void Awake()

162
{
KalahPanel.SetActive(false);
}

void Update()
{
if (playerHealth.currentHealth <= 0)
{
restartTimer += Time.deltaTime;
if (restartTimer >= restartDelay)
{
AudioSource.SetActive(false);
KalahPanel.SetActive(true);
}
}
}
}

4. Save script (ctrl + s), kembali ke unity. Kemudian pada


inspector akan tampil seperti gambar beriikut

163
5. Isi kolom Player Health dengan object player

6. Selanjutnya isi kolom Kalah Panel dengan object


PanelKalah

7. Pada kolom AudioSource isi dengan object AudioSource

164
5.5 Scripting GameOverManager3

Perbedaan dengan script GameOverManager adalah referensi player


health nya, script ini menggunakan PlayerHealth3. Script ini hanya
digunakan pada Level 3, buka scene Level 3

1. Select Game Manager hapus script GameOverManager

2. Selanjutnya pada inspector klik add component  ketik


GameOverManager3  klik new script

3. Pada kolom language pilih C Sharp  klik Create and Add

165
4. Double click pada script, maka secara otomatis akan
terbuka aplikasi MonoDevelope, ketik script berikut:

using System;
using UnityEngine;

public class GameOverManager3 : MonoBehaviour


{
public PlayerHealth playerHealth3;
public float restartDelay = 2f;
public GameObject KalahPanel;
public GameObject AudioSource;
float restartTimer;

void Awake()
{
// Set up the reference.
KalahPanel.SetActive(false);
}

void Update()
{
if (playerHealth.currentHealth <= 0)
{

166
restartTimer += Time.deltaTime;
if (restartTimer >= restartDelay)
{
AudioSource.SetActive(false);
KalahPanel.SetActive(true);
}
}
}
}

5.6 Scripting Keluar

Pada Script Keluar ini berfungsi untuk keluar dari game dan menutup
aplikasi.

1. Select ButtonKeluar, pada inspector klik add component


 ketik keluar  klik new script

2. Pada kolom language pilih C Sharp  klik Create and Add

167
3. Double click pada script, maka secara otomatis akan
terbuka aplikasi MonoDevelope, ketik script berikut:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class keluar : MonoBehaviour {

public void DOkeluar()


{
Debug.Log("has quit game");
Application.Quit();
}
}

168
4. Kembali ke unity, Klik tanda tambah pada button script

5. Pilih object ButtonKeluar pada kolom yang ditandai


dibawah ini

6. Pilih fungsi untuk ButtonKeluar klik No Function  keluar


 DOkeluar

169
5.7 Scripting MainMenu Control

Script MainMenu Control ini berfungsi untuk mengatur menu


misalnya menu pengaturan, pause dsb.

1. Select Canvas, pada inspector klik add component  ketik


MainMenuControl  klik new script

2. Pada kolom language pilih C Sharp  klik Create and Add

3. Double click pada script, maka secara otomatis akan


terbuka aplikasi MonoDevelope, ketik script berikut:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

170
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class MainMenuControl : MonoBehaviour


{
public GameObject home;
public AudioSource aSource;
public GameObject[] menus;

void Start()
{
DisableAllMenus();
GoHome();
aSource = GetComponent<AudioSource>();
}

public void ChangeMenu(int menuID)


{
DisableAllMenus();
menus[menuID].SetActive(true);
}
public void LoadAScene(string levelToLoad)
{
Application.LoadLevel(levelToLoad);
}

171
public void PlayAudio(AudioClip audioToPlay)
{
aSource.PlayOneShot(audioToPlay);
}

public void DisableAllMenus()


{
foreach (GameObject menu in menus)
{
menu.SetActive(false);
}
}

public void GoHome()


{
DisableAllMenus();
home.SetActive(true);
}
}
4. Save script(ctrl + s), kembali ke unity, pada script
MainMenuControl akan terlihat seperti gambar berikut

172
5. Pada kolom home pilih object canvas

6. Selanjutnya pada kolom Audio Source pilih object Audio


Source

7. Isi kolom size dengan angka 2, maka akan tampil tambahan


element 2 kolom

173
8. Isi element 0 dengan canvas

9. Sedangkan pada element 1 isi dengan PanelPengaturan

5.8 Scripting Menang

Menampilkan jendela menang jika player berhasil menyelesaikan


permainan.

1. Select triggerMenang, pada inspector klik add component


 ketik MainMenuControl  klik new script

2. Pada kolom language pilih C Sharp  klik Create and Add

174
3. Double click pada script, maka secara otomatis akan
terbuka aplikasi MonoDevelope, ketik script berikut:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Menang : MonoBehaviour


{

public GameObject AudioSource;


public GameObject MenangPanel;

public void Start()


{

175
MenangPanel.SetActive(false);
}

void OnTriggerEnter(Collider men)


{
if (men.gameObject.tag == "Player")
{
MenangPanel.SetActive(true);
AudioSource.SetActive(false);
}
}
}
4. Save script (ctrl + s), kembali ke unity, pada script menang
akan terlihat seperti gambar berikut

5. Pada kolom Audio Source pilih object Audio Source

176
6. Selanjutnya pada kolom Menang Panel pilih object
PanelMenang

5.9 Scripting Narkoba

Pada Script Narkoba ini diberikan damage yang berfungsi berkurang


darah atau nyawa player ketika player menyentuhnya.

1. Select Object Narkoba, pada inspector klik add component


 ketik Narkoba  klik new script

2. Pada kolom language pilih C Sharp  klik Create and Add

177
3. Double click pada script, maka secara otomatis akan
terbuka applikasi MonoDevelope, ketik script berikut:

using UnityEngine;
using System.Collections;

public class narkoba : MonoBehaviour


{
public int attackDamage = 1;
GameObject player;
PlayerHealth playerHealth;
bool playerInRange;
public float rotateSpeed;

void Awake()
{
player =
GameObject.FindGameObjectWithTag("Player");
playerHealth =
player.GetComponent<PlayerHealth>();
gameObject.transform.Rotate(Vector3.left
* Time.deltaTime * rotateSpeed);
}

178
void OnTriggerEnter(Collider other)
{
if (other.gameObject == player)
{

playerHealth.TakeDamage(attackDamage);
GameManager.instance.damaging(
gameObject);
AudioSource source =
GetComponent<AudioSource>();
source.Play();
}
}
}
4. Save script (ctrl + s)

5.10 Scripting Pause

Untuk pause atau memberhentikan seluruh kegiatan dalam game


sejenak .

1. Select Object Canvas, pada inspector klik add component


 ketik Pause  klik new script

2. Pada kolom language pilih C Sharp  klik Create and Add

179
3. Double click pada script, maka secara otomatis akan
terbuka applikasi MonoDevelope, ketik script berikut:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Pause : MonoBehaviour {

public GameObject pauseButton, pausePanel;

public void Start()


{
OnUnPause();

180
}

public void OnPause()


{
pausePanel.SetActive(true);
pauseButton.SetActive(false);
Time.timeScale = 0;
}

public void OnUnPause()


{
pausePanel.SetActive(false);
pauseButton.SetActive(true);
Time.timeScale = 1;
}
}
4. Save script (ctrl + s), kembali ke unity, pada script Pause
akan terlihat seperti gambar berikut

5. Pada kolom Pause Button pilih object ButtonPause

181
6. Pada kolom Pause Panel pilih object ButtonPause

5.11 Scripting Player Health

Scripting Player Health ini digunakan untuk membuat sebuah nyawa


pada player atau darah player, dengan sistem berkurangnya darah
atau nyawa pada player jika mengenai narkoba.

1. Select Object Player, pada inspector klik add component


 ketik PlayerHealth  klik new script

2. Pada kolom language pilih C Sharp  klik Create and Add

182
3. Double click pada script, maka secara otomatis akan
terbuka applikasi MonoDevelope, ketik script berikut:

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class PlayerHealth : MonoBehaviour


{
public int startingHealth = 3;
public int currentHealth;
public Slider healthSlider;
public Image damageImage;
public float flashSpeed = 5f;

183
public Color flashColour = new Color(1f, 0f,
0f, 0.1f);

Animator anim;
AudioSource playerAudio;
PlayerMotor playerMovement;
public bool isDead = false;
bool damaged;

void Awake()
{
anim = GetComponent<Animator>();
playerAudio =
GetComponent<AudioSource>();
playerMovement =
GetComponent<PlayerMotor3>();

currentHealth = startingHealth;
isDead = false;
}

void Update()
{
if (damaged)
{

184
damageImage.color = flashColour;
}
else
{
damageImage.color =
Color.Lerp(damageImage.color, Color.clear,
flashSpeed * Time.deltaTime);
}
damaged = false;
}

public void TakeDamage(int amount)


{
damaged = true;
currentHealth -= amount;
healthSlider.value = currentHealth;
if (currentHealth <= 0 && !isDead)
{
Death();
}
}

void Death()
{
isDead = true;

185
anim.SetTrigger("isDead");
playerAudio.enabled = false;
playerMovement.enabled = false;
}
}

4. Save script (ctrl + s), kembali ke unity, pada script


PlayerHealth akan terlihat seperti gambar berikut

5. Isi kolom pada script seperti gambar berikut

186
5.12 Scripting Player Health3

Perbedaan script PlayerHealth3 yaitu PlayerMovement


menggunakan PlayerMotor3

1. Select object Player hapus script PlayerHealth

2. Selanjutnya pada inspector klik add component  ketik


PlayerHealth3  klik new script

3. Pada kolom language pilih C Sharp  klik Create and Add

187
4. Double click pada script, maka secara otomatis akan terbuka
aplikasi MonoDevelope, ketik script berikut:

using UnityEngine.UI;
using System.Collections;

public class PlayerHealth3 : MonoBehaviour


{
public int startingHealth = 3;
public int currentHealth;
public Slider healthSlider;
public Image damageImage;
public float flashSpeed = 5f;
public Color flashColour = new Color(1f, 0f,
0f, 0.1f);

188
Animator anim;
AudioSource playerAudio;
PlayerMotor3 playerMovement;
public bool isDead = false;
bool damaged;

void Awake()
{
anim = GetComponent<Animator>();
playerAudio =
GetComponent<AudioSource>();
playerMovement =
GetComponent<PlayerMotor3>();

currentHealth = startingHealth;
isDead = false;
}

void Update()
{
if (damaged)
{
damageImage.color = flashColour;

189
}
else
{
damageImage.color =
Color.Lerp(damageImage.color, Color.clear,
flashSpeed * Time.deltaTime);
}
damaged = false;
}

public void TakeDamage(int amount)


{
damaged = true;
currentHealth -= amount;
healthSlider.value = currentHealth;
if (currentHealth <= 0 && !isDead)
{
Death();
}
}

void Death()
{
isDead = true;
anim.SetTrigger("isDead");

190
playerAudio.enabled = false;
playerMovement.enabled = false;
}
}

5.13 Scripting Player Motor

Script Player Motor ini berfungsi agar player berlari dan dapat juga
diatur kecepatanya.

1. Select object Player pada inspector klik add component 


ketik PlayerMotor  klik new script

2. Pada kolom language pilih C Sharp  klik Create and Add

191
3. Double click pada script, maka secara otomatis akan terbuka
aplikasi MonoDevelope, ketik script berikut:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMotor : MonoBehaviour


{
public CharacterController Controller;
private Vector3 moveVector;

private float speed = 6f;


private float verticalVelocity = 0.0f;
private float gravity = 12.0f;
private float animationDuration = 3.0f;

void Start()
{
Controller =
GetComponent<CharacterController>();
}

void Update()
{
if (Time.time < animationDuration)
{
Controller.Move(Vector3.forward *
speed * Time.deltaTime);
return;
}
moveVector = Vector3.zero;

if (Controller.isGrounded)
{

192
verticalVelocity = -0.5f;
}
else
{
verticalVelocity -= gravity *
Time.deltaTime;

}
moveVector.x =
Input.GetAxisRaw("Horizontal");
if (Input.GetMouseButton(0))
{
if (Input.mousePosition.x >
Screen.width / 2)
moveVector.x = speed;
else
moveVector.x = -speed;
}

moveVector.y = verticalVelocity;
moveVector.z = speed;
Controller.Move(moveVector *
Time.deltaTime);
}
}
4. Save script(ctrl+s), kemudian select object Player dan drag
ke kolom controller

193
5.14 Scripting Player Motor3

Pada script Player Motor 3 ini digunakan ketika di level ke 3, yaitu


membuat gerakan / lari dari player tersebut semakin kencang
daripada level 1 dan 2.

1. Select object Player hapus script PlayerMotor

2. Selanjutnya pada inspector klik add component  ketik


PlayerMotor3  klik new script

3. Pada kolom language pilih C Sharp  klik Create and Add

194
4. Double click pada script, maka secara otomatis akan terbuka
aplikasi MonoDevelope, ketik script berikut:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMotor : MonoBehaviour


{
public CharacterController Controller;
private Vector3 moveVector;

private float speed = 6f;


private float verticalVelocity = 0.0f;
private float gravity = 12.0f;
private float animationDuration = 3.0f;

void Start()
{
Controller =
GetComponent<CharacterController>();
}

195
void Update()
{
if (Time.time < animationDuration)
{
Controller.Move(Vector3.forward *
speed * Time.deltaTime);
return;
}
moveVector = Vector3.zero;

if (Controller.isGrounded)
{
verticalVelocity = -0.5f;
}
else
{
verticalVelocity -= gravity *
Time.deltaTime;

}
moveVector.x =
Input.GetAxisRaw("Horizontal");
if (Input.GetMouseButton(0))
{
if (Input.mousePosition.x >
Screen.width / 2)
moveVector.x = speed;
else
moveVector.x = -speed;
}

moveVector.y = verticalVelocity;
moveVector.z = speed;
Controller.Move(moveVector *
Time.deltaTime);
}
}

196
5.15 Scripting Swipe

Script Swipe ini adalah untuk menggerakkan karakter ke kiri dan ke


kanan ketika pemain menyentuh layar android untuk menghindari
narkoba dan mengambil makanan sehat.

1. Select object PlayerControl pada inspector klik add


component  ketik swipe  klik new script

2. Pada kolom language pilih C Sharp  klik Create and Add

3. Double click pada script, maka secara otomatis akan terbuka


aplikasi MonoDevelope, ketik script berikut:

197
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class swipe : MonoBehaviour {

public float maxTime;


public float minSwipeDist;

float startTime;
float endTime;

Vector3 startPos;
Vector3 endPos;

float swipeDistance;
float swipeTime;

public GameObject player;

void Update () {
if (Input.touchCount > 0)
{
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Began)
{
startTime = Time.time;
startPos = touch.position;
}

else if (touch.phase ==
TouchPhase.Ended)
{
endTime = Time.time;
endPos = touch.position;

198
swipeDistance = (endPos -
startPos).magnitude;
swipeTime = endTime - startTime;
if (swipeTime < maxTime &&
swipeDistance > minSwipeDist)
{
swipeA();
}
}
}

}
void swipeA()
{
Vector2 distance = endPos - startPos;
if (Mathf.Abs(distance.x) >
Mathf.Abs(distance.y))
{
Debug.Log("Horizontal Swipe");

if(distance.x > 0)
{
Debug.Log("Right Swipe");

player.GetComponent<PlayerMotor>();
}
if (distance.x < 0)
{
Debug.Log("Left Swipe");

player.GetComponent<PlayerMotor>();
}

}
else if (Mathf.Abs(distance.x) <
Mathf.Abs(distance.y))
{

199
Debug.Log("Vertical Swipe");

if (distance.y > 0)
{
Debug.Log("Up Swipe");
}
if (distance.y < 0)
{
Debug.Log("Down Swipe");
}
}
}
}

4. Save script(ctrl+s) dan kembali ke unity, isi kolom pada


script swipe seperti gambar berikut

200
BAB VI

PENYELESAIAN

6.1 Setting Software Development Kit (SDK) Android Di


Unity 3D

Setelah berhasil membuat Project baru di Unity. Untuk


dapat diekspor ke APK dibutuhkan SDK dan JDK. Download
SDK dan JDK dengan mengikuti langkah-langkah berikut.

A. Klik menu Edit kemudian pilih preference

B. Klik External Tools. Jika anda mempunyai file SDK dan


JDK maka silahkan klik browse dan pilih folder tempat
SDK dan JDK diinstal dan jika belum maka anda harus
men-download-nya dengan mengklik Download.

201
6.2 Setting Project Untuk Android Di Unity 3D

a. Setelah selesai memasukkan SDK dan JDK maka tutup


Unity Preferences dan klik menu file kemudian klik Build
setting. Klik switch platfoam tunggu hingga proses loading
selesai.

202
b. Klik Player Setting kemudian isikan company dan product
name serta Bundle Identifier. Jika anda mempunyai logo
game silahkan import pada icon. Juga ganti Package Name
nya.

203
204
c. Tarik semua Scene yang telah dibuat pada folder Scene ke
Scene in Builder kemudian klik Build. Tunggu hingga
proses Build selesai maka game telah berhasil di build ke
APK.

d. Klik build dan pilih lokasi save, kemudian ketik nama file
Narkono.Apk

205
e. Hasil build Narkono.Apk

206
DAFTAR PUSTAKA

[1] Jon Brodkin, . N.p.. Web. 4 Dec 2014.


<http://slashdot.org/topic/cloud/how-Unity3D- become-a-
game-Development-beast/>.
[2] Unite 2007 Developer Conference “Unite 2007 - Keynote”
Event. San Francisco Film Centre, San Francisco, CA. October
10th, 2007. Keynote Presentation.
[3] Ambrosia Software Inc, . N.p.. Web. 9 Dec 2013.
<http://www.ambrosiasw.com/news/story/GooBall-100-
released-Get-Gooey-get-GooBall>.
[4] Joachim Ante, . . N.p., 2006.
<http://forum.Unity3D.com/threads/2864-Unity-1-5-1-
unleashed>.
[5] Unity Technologies. "Press Releases." Unity - Press Releases.
N.p., n.d. Web. 18 Jan. 2014.
<http://Unity3D.com/company/public-relations/press-
releases>.
[6] Unity Technologies. "Unity Technologies Delivers Unity 3."
Marketwire. N.p., n.d. Web. 19 Jan. 2014.
<http://www.marketwired.com/press-release/Unity-
Technologies-Delivers-Unity-3-1325564.htm>.
[7] Unity Technologies. "Releasing Unity 4.3." Unity Technologies
Blog. N.p., n.d. Web. 18 Feb. 2014.
<http://blogs.Unity3D.com/2013/11/12/releasing-Unity-4-3/>.
[8] www.Unity3D.com

207

Anda mungkin juga menyukai