Workshop GameKita - How to Develop Game

47
Workshop Gamekita How To Develop Game Labyrinth Shooter 1 8 9 Mei 2015 Universitas PGRI Ronggolawe Tuban How To Develop Game Labyrinth Shooter

description

membuat game dengan unity

Transcript of Workshop GameKita - How to Develop Game

Page 1: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

1

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

How To Develop Game

Labyrinth Shooter

Page 2: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

2

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 3: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

3

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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”.

Page 4: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

4

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 5: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

5

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

Splash Screen Unity 5.

Tampilan awal Unity 5. Klik “New Project” untuk membuat project baru.

Page 6: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

6

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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

Page 7: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

7

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 8: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

8

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

Pada jendela Inspector, klik kotak property Background pada komponen Camera. Pilih warna

putih.

Buat objek Image melalui menu GameObject – UI.

Page 9: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

9

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 10: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

10

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 11: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

11

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

Buka script baru tersebut. Masukkan kode berikut.

Drag script ke dalam objek Canvas pada jendela Hierarchy. Buat Scene baru. Simpan dan beri

nama Home. Klik File – Build Settings.

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");

}

}

}

Page 12: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

12

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 13: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

13

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 14: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

14

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

Buat script baru. Beri nama GUIButtons. Masukkan script berikut.

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.

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");

}

}

Page 15: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

15

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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().

Page 16: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

16

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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().

Page 17: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

17

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 18: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

18

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

Import beberapa package pada Unity, pada menu bar pilih “Assets” – “Import Package…” –

“Custom Package…”.

Pilih file “SkyBox+Particles.unitypackage” lalu klik open.

Page 19: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

19

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 20: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

20

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

Setelah itu akan muncul kotak dialog seperti ini. Centang semuanya lalu klik “Import”.

Setelah import selesai, makaakanmuncul folder baru CustomizableGun_FreeED

Page 21: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

21

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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”.

Page 22: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

22

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 23: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

23

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 24: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

24

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 25: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

25

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 26: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

26

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 27: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

27

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 28: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

28

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 29: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

29

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 30: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

30

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

Lalu letakkan semua Objekyang sudah dibuat sebelumnya menjadi child dari gameobject

Labyrinth dengan cara drag n drop.

Page 31: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

31

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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).

Page 32: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

32

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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

Page 33: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

33

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 34: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

34

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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);

}

}

Page 35: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

35

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 36: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

36

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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);

}

}

}

Page 37: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

37

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

Page 38: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

38

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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);

}

}

Page 39: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

39

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

Setelah itu, masukkan objek peluru. Pada “Fire Effect” pilih Fire1

C. Score + Time

Tambahkan Objekcanvas, pilih “GameObject” – UI – Canvas

Page 40: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

40

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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();

}

public static int Target

{

get { return Scoring.target; }

set { Scoring.target = value; }

}

public static float Limit

{

get { return Scoring.limit; }

set { Scoring.limit = value; }

Page 41: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

41

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

Jangan lupa menghapus komentar skrip Scoring pada skrip BULLET_ThermalDetonator

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;

}

}

}

Page 42: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

42

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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();

}

}

Page 43: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

43

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

Hilangkan komentar SoundManager.Fire(); pada FP_Shooting.

Page 44: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

44

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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;

}

void Update()

{

ApplyDeltaJoy();

}

public void Dragging()

{

isRotating = true;

joyTrans.position = MoveJoystick();

Page 45: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

45

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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;

}

void LateUpdate()

{

if (!troller.isGrounded)

troller.Move(Vector3.down * 2);

}

}

Page 46: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

46

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

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.

void LateUpdate()

{

if (!troller.isGrounded)

troller.Move(Vector3.down * 2);

}

}

Page 47: Workshop GameKita - How to Develop Game

Workshop Gamekita

How To Develop Game – Labyrinth Shooter

47

8 – 9 Mei 2015

Universitas PGRI Ronggolawe Tuban

Selanjutnya, buat script untuk menembakkan peluru.

Drag script tersebut ke objek Image untuk menembak. Tambahkan EventTrigger dan

tambahkan Event PointerClick.

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);

}

}