How To Develop Game Labyrinth Shooter

dokumen-dokumen yang mirip
Mudah Membuat Game & Potensi Finansialnya Dengan Unity 3D + Dvd Menyusul

Tutorial : Membuat Permainan Flappy Bird menggunakan Unity3D

BAB IV IMPLEMENTASI DAN ANALISIS

Membuat Game Kuis Menggunakan Unity3D 2017 untuk Android

BAB III ANALISIS MASALAH DAN PERANCANGAN PROGRAM

BAB IV PERANCANGAN SISTEM

Bab 4 Hasil dan Pembahasan

Aplikasi Augmented Reality Keadaan Geografis Negara di Asia Tenggara

BAB IV IMPLEMENTASI DAN PENGUJIAN

LISTING PROGRAM. A. Halaman Splash Screen using UnityEngine; using System.Collections;

BAB IV IMPLEMENTASI DAN EVALUASI

Gambar 4.1. Script Menu Utama

Workshop Singkat Membuat Game Shooter

BAB V IMPLEMENTASI KARYA. Laporan tugas akhir pada BAB V dijelaskan mengenai proses atau jalan cerita

BAB IV IMPLEMENTASI DAN UJI COBA

BAB V Membuat Game Fly Bird

INSTRUKSI PENCABANGAN

1. MENGENAL VISUAL BASIC

PENGENALAN INTERFACE MACROMEDIA DITECTOR MX

Teknologi Game Pengembangan Game 2D dengan Unity 3D dan Orthello Framework

MODUL 1 SWISHMAX ANIMASI TEKS & ANIMASI GAMBAR

PEMROGRAMAN LANJUTAN JAVA. Dasar-Dasar Netbeans

MODUL 1 INSTALASI PAKET JAVA DAN PROGRAM SEDERHANA

LISTING PROGRAM. public class SplashScreen : MonoBehaviour { public float waktumuncul = 5;

BAB IV IMPLEMENTASI DAN EVALUASI

PEMANFAATAN TEKNOLOGI AUGMENTED REALITY UNTUK PEMBELAJARAN CANDI CANDI DI INDONESIA PADA PLATFORM ANDROID

Bab I Pengenalan Visual BASIC

MODUL I. A. Instalasi Borland Delphi Buka file instalasi Borland Delphi Klik Run Program. 3. Klik Next

TUTORIAL PEMBUATAN MEDIA PEMBELAJARAN DENGAN MENGGUNAKAN AUTOPLAY OLEH KELOMPOK 1. gunakan start menu untuk menampilkan program autoplay media studio.

Berikut ini adalah prosedur cara instalasi untuk menginstall aplikasi Bali Turbin ke dalam PC desktop.

Chapter 1 Buat aplikasi kita menggunakan VisualMidlet

DASAR MENGGUNAKAN VISUAL BASIC 6.0

LAMPIRAN I. LIST PROGRAM GAME MOMOKA

DAFTAR ISI BAB I INSTALLASI

PENGENALAN DAN INSTALASI RPGMAKER XP

Teknologi Game Pengembangan Game 2D dengan Unity 3D dan Orthello Framework

3.5.1 Use Case Diagram Activity Diagram Unity 3D Pengenalan Unity 3D Komponen (Component)...

MODUL I. A. Landasan Teori. Modul Praktimum Pemrograman Visual II D3 Manajemen Informatika UNIJOYO

Modul Praktikum Ke-1

Bab 5. Dasar-dasar Action Script

LISTING PROGRAM. 1. Splash Screen. using UnityEngine; using System.Collections;

3.1.3 Target Pemain Target pemain pada game Cari Kata Indonesia ini adalah semua umur, sehingga segala usia dapat memainkan game ini.

LAMPIRAN-LAMPIRAN Lampiran 1. Surat Permohonan Validasi Kuesioner

Kata Pengantar... vii Daftar Isi... ix

MODUL III. VIDEO (Part 3) A. TUJUAN Mahasiswa mengerti cara memberikan animasi motion/grafhics dan membuat title

1. Prosedur Instalasi Aplikasi Berikut ini adalah panduan untuk melakukan install aplikasi game Winter Solstice di smartphone :

visit :

Otodidak VBA MS Excel untuk Pemula

Workshop Gamekita Basic Logic Game with Construct 2

BAB IV IMPLEMENTASI DAN PENGUJIAN

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

BAB 5 IMPLEMENTASI DAN PENGUJIAN

Modul Pelatihan : Pembuatan Game Animasi Menggunakan Greenfoot

BAHASA PEMROGRAMAN 2 PENGENALAN GAMBAS

Tutorial Jasper Report with JDBC Prerequisites: Jasper Report, ireport installed, MySQL installed, and NetBeans IDE

Persiapan. 2.1 Hardware

Pengolahan dan Publikasi Video Digital

BAB IV ANALISA DAN PERANCANGAN

i L i f e & M A C O S

MODUL PRAKTIKUM 1 DASAR VISUAL BASIC 6.0

MICROSOFT POWERPOINT. Pendahuluan

MODUL PENGABDIAN MASYARAKAT PENINGKATAN KREATIVITAS SISWA SMA INSTITUT INDONESIA DENGAN PENGENALAN TEKNOLOGI AUGMENTED REALITY 3D MENGGUNAKAN ANDROID

PRAKTIKUM 6 SPINNER. 1. Aktifkanlah project baru, File New Project Android Application Project. Modul 6 Spinner Page 1

Percobaan 9 Basic Widget

PENDAHULUAN. Gambar 1.1. GameMaker dari YoyoGames

SILABUS MATAKULIAH. Pendahuluan Mengenal Tools Air for Android. - Menu bar - Component Inspektor - Tool Box - Libraries - Stage

Dewanto Harjunowibowo

GioBox Android Application Manual

Sebelum membahas mengenai pemrograman LabVIEW, sebaiknya pembaca mengenal istilah istilah penting berikut ini.

Algoritma Pemrograman A

FM-UDINUS-BM-08-05/R0

BOUNCE NAHKODA CLASSIC GAME. Pertemuan 1. Oleh Mohammad Habibulloh

IMPLEMENTASI PEMROGRAMAN VISUAL BASIC DENGAN DATABASE ACCESS

Latihan Animasi Flash

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK. Maimunah, S.Si,M.Kom

Ginanjar Utama Workbench Tempat Bekerja

PENGOPERASIAN SISTEM OPERASI

BAB IV PEMBAHASAN 4.1 Perancangan Game

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAHASA PEMROGRAMAN JAVA

Membuat Webservice Pada Visual Studio 2012 (C#.NET ver.4.5)

MICROSOFT POWERPOINT

Rekomendasi Min Perangkat Keras. Prosesor dual core 1.5 GHz RAM 2 GB Monitor 10 " VGA Onboard Keyboard PS2 Mouse PS2

1. Tentang Ms Power Point

Modul Pelatihan Penggunaan Inkscape untuk Membuat Logo SME Service Center

Membuat Kalender Meja dengan Photoshop

BAB I Pengenalan Microsoft Visual Basic 6.0

-Aplikasi Backend 1. Install dot NET framework 4 dr link berikut

PEMROGRAMAN DASAR XI TKJ SMK NEGERI 1 KUPANG

Editing Video Menggunakan Adobe Premiere Pro

A. Memulai dan Struktur Visual Basic

BAB IV IMPLEMENTASI DAN UJI COBA

BAB III ANALISA DAN PERANCANGAN

Mengelola File, Folder, dan Album

Pengenalan Visual Basic

Program Kalkulator Sederhana Menggunakan Java Netbeans

4.1.1 Implementasi Rigging kedalam Objek 3D

BAB VII. Pengenalan Menu Editor Dan Proses Pembuatan Serta Penggunaan Multi Form

Transkripsi:

How To Develop Game Labyrinth Shooter 1

I. Pengenalan unity A. Install + Setup Unity Klik 2x pada file installer Unity. Klik Next untuk melanjutkan. Klik I Agree untuk menyetujui persetujuan ketika menginstall Unity. 2

Centang checkbox MonoDevelop lalu klik Next. MonoDevelop digunakan sebagai default text editor code pada Unity. Pilih folder tujuan untuk meletakkan file-file Unity dengan klik Browse. Setelah itu klik Intall. 3

Tunggu hingga selesai. Centang Run Unity 5 untuk membuka Untiy Catatan : Ketika pertama kali menginstall akan muncul dialog untuk memasukkan username dan password akun unity. 4

Splash Screen Unity 5. Tampilan awal Unity 5. Klik New Project untuk membuat project baru. 5

Masukkan nama project baru yang akan dibuat dan pilih lokasi penyimpanan project. Setelah selesai klik Create project. B. Interface Unity Gambar dibawah ini adalah tampilan default Unity. Keterangan : - Toolbar : Kumpulan tools yang di gunakan untuk editing objek di dalam game - Hieararchy : Jendela yang menampung semua objek yang dipakai di dalam game - Game : Jendela yang menampilkan hasil visual game dari kamera yang aktif - Scene : Jendela yang menammpilkan lingkungan game secara keseluruhan - Project : Jendela yang merupakan file explorer untuk memanajemen file-file - Inspector : Jendela yang menampilkan properti yang dimiliki oleh objek yang dipilih 6

II. GUI Game GUI Splash Screen Siapkan gambar untuk splash screen. Kita akan memanfaatkan fasilitas UI yang diberikan Unity. Buat scene baru. Simpan scene baru tersebut. Beri nama SplashScreen. Ganti warna latar belakang dari game. Klik Main Camera pada jendela Hierarchy. 7

Pada jendela Inspector, klik kotak property Background pada komponen Camera. Pilih warna putih. Buat objek Image melalui menu GameObject UI. 8

Akan muncul kotak putih di layar. Perlu diperhatikan objek UI hanya bisa tampil di area Canvas (kotak dengan garis tepi berwarna putih). Lihat ke jendela Inspector dan cari komponen Image. Pada property Source Image, klik lingkaran kecil di sebelah kanan. Cari gambar yang akan dijadikan logo pada splash screen. 9

Atur ukuran gambar sesuai keinginan dengan klik T dan drag n drop titik di sudut-sudut objek. Buat script baru. Pada jendela Project, klik Create C# Script. Beri nama SplashScreenTimer. 10

Buka script baru tersebut. Masukkan kode berikut. using UnityEngine; using System.Collections; public class SplashScreenTimer : MonoBehaviour public float splashscreentimer = 2f; // Use this for initialization void Update () splashscreentimer -= Time.deltaTime; if (splashscreentimer < 0) Application.LoadLevel("Home"); Drag script ke dalam objek Canvas pada jendela Hierarchy. Buat Scene baru. Simpan dan beri nama Home. Klik File Build Settings. 11

Drag dua scene yang baru saja kita buat ke dalam bagian Scenes In Build. Letakkan scene SplashScreen di urutan paling atas (index 0). Jalankan Game. GUI Home and Scene Transtition Buka scene Home. Buat objek Image untuk UI background. Pilih gambar yang diinginkan. Buat ukurannya sesuai dengan ukuran Canvas. 12

Buat objek Text untuk judul. Ganti isi tulisan, ukuran, dan jenis font dari Text tersebut melalui komponen Text di Inspector. Buat lagi objek Text untuk tombol Play dan Help. 13

Buat script baru. Beri nama GUIButtons. Masukkan script berikut. using UnityEngine; using System.Collections; public class GUIButtons : MonoBehaviour public void GoToPlay() Application.LoadLevel("Main"); public void GoToHelp() Application.LoadLevel("Help"); public void BackToHome() Application.LoadLevel("Home"); Drag script yang baru dibuat ke dalam objek Canvas. Klik objek Text untuk tombol Play. Klik Component-Event-Event Trigger. Pada jendela Inspector, klik Add New Event Type pada komponen Event Trigger. Pilih PointerClick. 14

Akan muncul event baru pada komponen tersebut. Klik tanda (+) di pojok bawah event tersebut. Drag objek Canvas untuk tombol Play ke dalam kotak di bawah menu drop-down Runtime Only. Klik drop-down No Function. Pilih GUIButtons, dan pilih GoToPlay(). 15

Lakukan kembali langkah 7 hingga 11 untuk tombol Help. Ganti fungsinya dengan GoToHelp(). Buat 2 scene baru. Beri nama Main dan Help. Masukkan 2 scene tersebut ke dalam ScenesInBuild. Jalankan. Masuk ke dalam scene Help. Tambahkan background, judul, dan tombol Back. Drag script GUIButtons ke objek Canvas. Tambahkan Event Trigger pada tombol dan masukkan fungsi BackToHome(). 16

III. Environment (Labyrinth) Untuk persiapan, buat beberapa folder untuk menampung assets (Gambar, Musik, Suara, Code dan lain-lain) yang akan digunakan dalam game. Untuk membuat folder, Klik Kanan pada jendela project pilih Create lalu Folder pada Project. Buat beberapa folder seperti di bawah. 17

Import beberapa package pada Unity, pada menu bar pilih Assets Import Package Custom Package. Pilih file SkyBox+Particles.unitypackage lalu klik open. 18

Setelah itu akan muncul kotak dialog seperti ini. Centang semuanya lalu klik Import. Untuk Assets senapan, lakukan import package kembali seperti langkah sebelumnya pilih file Gun.unitypackage lalu klik open. 19

Setelah itu akan muncul kotak dialog seperti ini. Centang semuanya lalu klik Import. Setelah import selesai, makaakanmuncul folder baru CustomizableGun_FreeED 20

Untuk Assets senapan, lakukan import package kembali seperti langkah sebelumnya pilih file Gun.unitypackage lalu klik open. Setelah itu akan muncul kotak dialog seperti ini. Centang semuanya lalu klik Import. 21

Langkah berikutnya adalah membuat environment labirin. Untuk membuatlabirin, buat ObjekCube dengan memilih GameObject 3D Object Cube. Setelah itu muncul Objek kubus seperti di bawah ini. 22

Lalu jadikan Objek kubus sebagai Objektanah untuk labirin. Atur ukuran kubus menjadi pipih seperti di bawah ini. Untuk lebih mudah, dapat langsung mengatur Transform dari kubus tersebut dan mengubah nama menjadi Ground seperti pada gambar di bawah. Tambahkan Component Rigidbody pada kubus tersebut dengan cara Add Component dan cari Rigidbody. 23

Lalu centang Is Kinematic pada komponen Rigidbody. Lalu tambahkan tekstur rumput pada Ground. Sebelum itu tambahkan gambar tekstur ke proyek Unity dengan cara drag n drop ke proyeknya dan arahkan ke folder Texture. Lalu drag n drop tekstur rumput tersebut ke Objekkubus Ground. Setelah selesai, maka ObjekGround akan memiliki tekstur seperti gambar di bawah. 24

Objek Ground sudah terbentuk. Setelah itu buat Objek kubus lagi untuk membuat dindingnya dan ubah nama kubus tersebut menjadi Wall. Jangan lupa tambahkan komponen Rigidbody juga pada Objek Wall dan centang Is Kinematic. Lalu tambahkan tekstur batu bata pada Wall. Sebelum itu tambahkan gambar tekstur batu bata ke proyek Unity dengan cara drag n drop ke proyeknya lalu arahkan ke folder Texture. 25

Setelah selesai, maka ObjekWall akan nampak seperti gambar di bawah. Lalu setting ukuran kubus Wall sehingga menyerupai dinding pada labirin. Gunakan icon untuk melakukan rotasi, pergeseran dan perbesaran. Lalu atur dinding labirin hingga nampak seperti gambar di bawah ini. 26

Untuk membuat tampilan tidak gelap, maka tambahkan lampu dengan cara klik GameObject pilih Light Directional Light Lalu akan muncul lampu pada tampilan permainan. Atur lampu agar berada di atas labirin sehingga tampilan permainan nampak terang. 27

Untuk mempercantik tampilan, tambahkan skybox dengan cara pilih Windiw Lighting. Pada kolom Skybox pilih material Sunny. Lalu tambahkan skybox sehingga tampilan ketika dijalankan seperti ini. 28

Untuk memperingkas struktur hierarchy, buat sebuah gameobject empty baru dengan cara GameObject Create Empty. Lalu muncul Objek baru seperti di bawah. Ubah nama gameobject tersebut menjadi Labyrinth dan atur transformnya. 29

Lalu letakkan semua Objekyang sudah dibuat sebelumnya menjadi child dari gameobject Labyrinth dengan cara drag n drop. 30

IV. Character A. Input Character + Target Buat gameobject empty baru dengan nama Player. Tambahkan komponen Character Controller pada gameobject Player dan atur transform playernya (sesuaikan dengan ukuran Ground). 31

Buat gameobject Main Camera menjadi child dari gameobject Player. Lalu tambahkan Kursor pada proyek dengan cara drag n drop file lalu arahkan ke folder Texture. UbahTexture Type menjadi Sprite (2D and UI) dan klik Apply 32

Setelah itu, jadikan Objekkursor menjadi child dari Main Camera dengan cara drag n drop ke Hierarchy. Setelah itu buat skrip FirstPersonController pada folder Script dengan Klik Kanan Create C# Script. 33

Berikut adalah isi dari skrip FirstPersonScript. Masukkan ke objek Player. using UnityEngine; using System.Collections; public class FirstPersonController : MonoBehaviour public float movementspeed = 5.0f; public float mousesensitivity = 5.0f; public float jumpspeed = 20.0f; float verticalrotation = 0; public float updownrange = 60.0f; float verticalvelocity = 0; CharacterController charactercontroller; // Use this for initialization void Start () Screen.lockCursor = true; charactercontroller = GetComponent<CharacterController>(); // Update is called once per frame void Update () // Rotation float rotleftright = Input.GetAxis("Mouse X") * mousesensitivity; transform.rotate(0, rotleftright, 0); verticalrotation -= Input.GetAxis("Mouse Y") * mousesensitivity; verticalrotation = Mathf.Clamp(verticalRotation, -updownrange, updownrange); Camera.main.transform.localRotation = Quaternion.Euler(verticalRotation, 0, 0); // Movement float forwardspeed = Input.GetAxis("Vertical") * movementspeed; float sidespeed = Input.GetAxis("Horizontal") * movementspeed; verticalvelocity += Physics.gravity.y * Time.deltaTime; if( charactercontroller.isgrounded && Input.GetButton("Jump") ) verticalvelocity = jumpspeed; Vector3 speed = new Vector3( sidespeed, verticalvelocity, forwardspeed ); speed = transform.rotation * speed; charactercontroller.move(speed * Time.deltaTime); 34

Setelah itu buka folder CustomizableGun_FreeED Prefab dan pilih senapan yang diinginkan. Pilih salah satu senapan dan jadikan child gameobject Main Camera. Atur letak senapan sehingga tampilan permainan menjadi seperti ini. 35

B. Shooting Lalu buat skrip FP_Shooting. Masukkan ke objek Player Berikut adalah isi dari skrip FP_Shooting. using UnityEngine; using System.Collections; public class FP_Shooting : MonoBehaviour public GameObject bullet_prefab; float bulletimpulse = 50f; // Use this for initialization void Start () // Update is called once per frame void Update () if( Input.GetButtonDown("Fire1")) //SoundManager.Fire(); Camera cam = Camera.main; GameObject thebullet = (GameObject)Instantiate(bullet_prefab, cam.transform.position + cam.transform.forward, cam.transform.rotation); thebullet.rigidbody.addforce( cam.transform.forward * bulletimpulse, ForceMode.Impulse); 36

Lihat pada gameobject player, maka akan ada komponen yang belum terisi. Isi dengan prefab peluru. Maka peluru sudah dapat dilontarkan dari senapan. Tambahkan target yang ada pada folder Model. Letakkan pada sudut sudut. 37

Buat skrip BULLET_ ThermalDetonator. using UnityEngine; using System.Collections; public class BULLET_ThermalDetonator : MonoBehaviour float lifespan = 3.0f; public GameObject fireeffect; // Use this for initialization void Start () // Update is called once per frame void Update () lifespan -= Time.deltaTime; if(lifespan <= 0) Explode(); void OnCollisionEnter(Collision collision) if(collision.gameobject.tag == "Enemy") collision.gameobject.tag = "Untagged"; collision.transform.getchild(0).gameobject.setactive(true); //Scoring.Target++; Destroy(gameObject); void Explode() Destroy(gameObject); 38

Setelah itu, masukkan objek peluru. Pada Fire Effect pilih Fire1 C. Score + Time Tambahkan Objekcanvas, pilih GameObject UI Canvas 39

Tambahkan text sebagai child dari gameobject Canvas dan beri nama seperti di bawah ini. (GameObject UI - Text) Buat Skrip Scoring. Lalu masukkan skrip Scoring kedalam objek Canvas. using UnityEngine; using UnityEngine.UI; using System.Collections; public class Scoring : MonoBehaviour private static int target; private static float limit; private string condition; private Text targettext; private Text limittext; private Text conditiontext; private bool isgameover; // Use this for initialization void Start () limit = 60f; target = 0; targettext = this.transform.getchild(0).getcomponent<text>(); limittext = this.transform.getchild(1).getcomponent<text>(); conditiontext = this.transform.getchild(2).getcomponent<text>(); //conditiontext.active = false; isgameover = false; // Update is called once per frame void Update () if (!isgameover) if (limit >= 0f) limit -= Time.deltaTime; int limitcast = (int) limit; targettext.text = "Target: " + target + "/5"; limittext.text = "Time: " + limitcast; conditiontext.text = condition; ConditionMethod(); 40

public static int Target get return Scoring.target; set Scoring.target = value; public static float Limit get return Scoring.limit; set Scoring.limit = value; private void ConditionMethod() if(target == 5) condition = "WIN"; // conditiontext.active = true; isgameover = true; else if(limit <= 0f) condition = "LOSE"; // conditiontext.active = true; isgameover = true; Jangan lupa menghapus komentar skrip Scoring pada skrip BULLET_ThermalDetonator 41

V. Sound Masukkan file-file suara yang dibutuhkan pada folder Sound. Masukkan ambience_planetscape_forest pada Main Camera lalu atur pengulangannya dengan centang Loop. Buat objek baru lalu masukkan pada main camera. Setelah itu, masukkan skrip SoundManager dan fire_gun1_rank1 pada objek SoundManager. using UnityEngine; using System.Collections; public class SoundManager : MonoBehaviour private static AudioSource gun; // Use this for initialization void Start () gun = this.getcomponent<audiosource>(); // Update is called once per frame void Update () public static void Fire() gun.play(); 42

Hilangkan komentar SoundManager.Fire(); pada FP_Shooting. 43

VI. Export to Android Pada objek Player, nonaktifkan komponen FirstPersonController dan FP_Shooting. Siapkan asset yang digunakan sebagai joystick control dan tombol untuk menembak. Buat beberapa objek UI Image. Objek UI ini akan digunakan sebagai touch control. Susun seperti pada gambar di bawah. Bagian kiri untuk movement, bagian kanan untuk menembak dan look around. Buat script baru. Beri nama JoystickControl. Masukkan script berikut. using UnityEngine; using System.Collections; public class JoystickControl : MonoBehaviour public enum JoystickType Movement, LookRotation; public JoystickType joysticktype; public Transform player = null; public float playerspeed = 2f, maxjoydelta = 0.05f, rotatespeed = 100.0f; private Vector3 orijoypos, joydelta; private RectTransform joytrans = null; public CharacterController troller; private float pitch = 0.0f, yaw = 0.0f; private Vector3 orotation; private bool isrotating; void Start() joytrans = this.getcomponent<recttransform>(); orijoypos = joytrans.position; orotation = player.eulerangles; pitch = orotation.x; yaw = orotation.y; 44

void Update() ApplyDeltaJoy(); public void Dragging() isrotating = true; joytrans.position = MoveJoystick(); ApplyDeltaJoy(); public void OnEnded() isrotating = false; joytrans.position = orijoypos; joydelta = new Vector3(0, 0, 0); void ApplyDeltaJoy() switch (joysticktype) case JoystickType.Movement: troller.move((player.forward * joydelta.y + player.right * joydelta.x) * playerspeed * Time.deltaTime); break; case JoystickType.LookRotation: if (isrotating) pitch -= joydelta.y * rotatespeed * Time.deltaTime; yaw += joydelta.x * rotatespeed * Time.deltaTime; else pitch = 0; yaw = 0; pitch = Mathf.Clamp(pitch, -80, 80); player.eulerangles += new Vector3(pitch, yaw, 0.0f); break; Vector3 MoveJoystick() Debug.Log(Input.touchCount); float x = Input.GetTouch(Input.touchCount-1).position.x; float y = Input.GetTouch(Input.touchCount - 1).position.y; Vector3 position = new Vector3(Mathf.Clamp(x, orijoypos.x - maxjoydelta, orijoypos.x + maxjoydelta), Mathf.Clamp(y, orijoypos.y - maxjoydelta, orijoypos.y + maxjoydelta), 0); joydelta = new Vector3(position.x - orijoypos.x, position.y - orijoypos.y, 0); return position; 45

void LateUpdate() if (!troller.isgrounded) troller.move(vector3.down * 2); Drag script tersebut ke kedua objek Image bergambar lingkaran biru. Klik Image lingkaran biru bagian kiri. Pada bagian Inspector, lihat komponen Joystick Control. Pilih Movement untuk Joystick Type. Drag objek Player ke property Player dan Property Troller. Selanjutnya isikan property lainnya seperti pada gambar di bawah. Lakukan hal yang sama untuk lingkaran biru bagian kanan. Namun, pada pilihan Joystick Type, pilih LookRotation. Tambahkan Komponen EventTrigger untuk masing-masing objek Image lingkaran biru. Tambahkan Event Drag dan PointerUp. Klik tanda (+) pada Event Drag. Drag objek Image lingkaran biru ke Event tersebut. Selanjutnya pilih fungsi Dragging. Lakukan hal yang sama untuk Event PointerUp dan tambahkan fungsi OnEnded. 46

Selanjutnya, buat script untuk menembakkan peluru. using UnityEngine; using System.Collections; public class FireButton : MonoBehaviour public GameObject bullet_prefab; float bulletimpulse = 50f; public void Fire() SoundManager.Fire(); Camera cam = Camera.main; GameObject thebullet = (GameObject)Instantiate(bullet_prefab, cam.transform.position + cam.transform.forward, cam.transform.rotation); thebullet.getcomponent<rigidbody>().addforce(cam.transform.forward * bulletimpulse, ForceMode.Impulse); Drag script tersebut ke objek Image untuk menembak. Tambahkan EventTrigger dan tambahkan Event PointerClick. 47