Workshop GameKita - How to Develop Game
-
Upload
maduw-maya -
Category
Documents
-
view
28 -
download
0
description
Transcript of 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
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.
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”.
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.
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.
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
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.
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.
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.
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.
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");
}
}
}
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.
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.
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");
}
}
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().
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().
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.
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.
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.
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
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”.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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
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.
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);
}
}
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.
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);
}
}
}
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.
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);
}
}
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
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; }
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;
}
}
}
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();
}
}
Workshop Gamekita
How To Develop Game – Labyrinth Shooter
43
8 – 9 Mei 2015
Universitas PGRI Ronggolawe Tuban
Hilangkan komentar SoundManager.Fire(); pada FP_Shooting.
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();
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);
}
}
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);
}
}
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);
}
}