Anda di halaman 1dari 28

ROLL A BALL TUTORIAL

Septian Nugroho
K3513064
PTIK/Sem 7

1.

2.

Pengenalan

Roll a ball adalah game simple yang dapat dibuat dengan mudah menggunakan aplikasi
unity. Sebagai gambaran, game roll a ball Nampak seperti gambar diatas. Actor yang
ada didalam game adalah sebuah bola bundar besar. Bola dapat digerakkan
menggelinding menggunakan arah panah yang ada di keyboard. Apabila bola mengenai
kubus kuning, maka akan mendapatkan poin dan jika semuanya habis maka permainan
selesai dan menang.
Beberapa objek yang dapat kita gunakan dalam game ini diantaranya yaitu terrain
(digunakan untuk membuat dasar game), kubus dan bola.
Setting up the game
Buat sebuah file scene baru di unity.
Buka Unity -> new
Ketikkan nama project roll a ball, tentukan lokasinya dan pilih 3D, lalu klik
create project

Tampilan unity akan tampil sebagai berikut

Simpan scene anda dengan nama roll-a-ball


Membuat dasar (ground) game
Untuk dasar game pada unity, bisa kita buat dengan terrain, caranya:
Klik create pada tab hierarchy-> 3D object -> plane

Ganti nama Ground agar mudah dikenali objeknya

Pastikan settingan ispektor ground seperti berikut

Buat actor player


Klik create pada tab hierarchy lalu pilih sphere
Setelah itu ubah nama menjadi player dan setting menjadi sbb

Setelah kedua objek tersebut dibuat, maka akan tampil gambar seperti dibawah ini di tab
scene preview

Membuat material objek


Material digunakan untuk melakukan pewarnaan di dalam objek. Agar lebih terstruktur,
buat folder materials khusus untuk untuk menyimpan semua material.
Pada tab project , klik create dan plilih folder rename menjadi materials

Kemudian select folder materials dan klik lagi create material, pada kali ini
material akan digunakan untuk mpewarnaan background, maka kita namakan
background

Perhatikan tab inspector, atur warna dengan klik pada icon pensil albedo
kemudian sesuaikan dengan keinginan menurut warna RGB

Lalu drag Background (ada di tab project) kearah object Ground pada scene.

Untuk hasil yang maksimal, kita atur directional lighnya menjadi seperti berikut

3.

Moving the player


Sesuatu displayakan dikatakan game jika ada interaksi antara pemain dengan game itu
sendidi. Di permainan roll a ball ini, player akan digerakkan secara bebas menggunakan
keyboard panah.
Menambahkan rigidbody
Select player pada hierarchy
Pilih menu component > phisict > Rigidbody

Buat script player


Script digunakan untuk melakukan scripting pada player. Agar lebih terstruktur, buat folder
script khusus untuk untuk menyimpan semua kode script.
Pada tab project , klik create dan plilih folder rename menjadi scripts

Pilih player pada hierarchy, kemudian tambahkan komponen pada bawah


inspector

Berinama PlayerController dan menggunakan bahasa C Sharp kemudian klik


create and add
Pindahkan file scripts PlayerController pada folder scripts dengan cara drag file
script ke folder scripts.

Buka file script PlayerController dengan cara double click untuk melakukan
pengkodean objek player

Kode yang ada di PlayerController adalah sbb

Simpan, maka akan muncul option speed pada inspector player dan isikan 10

Coba jalankan dengan menekan button play, maka bola sudah bisa
menggelinding ketika kita menekan tombol panah keyboard.

4.

Moving the camera


Kamera akan mengikuti arah ball (Player) ketika player bergerak. Cara membuatnya?
Atur posisi main kamera menjadi sbb.

Buat Main kamera menjadi child (anak) dari palyer dengan mendrag main
kamera dan arahkan ke player

Kamera sudah bisa mengikuti arah pergeakan player, begitu juga rotasi. Namun
kamera hanya mengikuti satu sisi saja, jika bola berputar maka kamera ikut
berputar (membuat pusing). Untuk mengatasi hal tersebut, kita buat script untuk
camera.
Membuat script pada camera
Lepaskan child main camera pada palayer dengan mendrag main kamera ke area
kosong tab hierarchy

Buat script lagi dengan cara yang sama saat membuat script palyer. Beri nama
CameraController
Buka file CameraController dan isikan kode sebagai berikut

Simpan file tersebut.


Drag object player pada inspector main camera.

Coba jalankan, seharusnya sudah berjalan dengan normal


5.

Setting up the Play Area


Tempat play arena Roll a ball akan kita buat menyerupai meja billyard, hanya saja tidak
terdapat lubang pada tiap sisinya. Play arena ini digunakan supaya player tidak keluar
jalur permainan. Cara membuatnya?
Buat empty objek yang mempunyai nama walls. Kenapa empty objek (objek
kosong), empty object ini digunakan untuk menggabungkan child-child dari walls
yang terdiri dari west, east, south, north walls.
Pilih gameObject pada main menu, pilih empty. Lalu beri nama walls.

Buat object cube dan beri nama west wall, kemudian child-kan ke walls dengan
cara drag west wall ke walls

Atur transform pada tab inspector west wall sbb

Duplicate west wall menjadi east wall, north wall, dan south wall

Atur transform pada tab inspector east wall sbb

Atur transform pada tab inspector north wall sbb

Atur transform pada tab inspector south wall sbb

Hasil dari pembuatan walls menjadi seperti ini. Jika tidak sesuai, sesuaikan
sendiri

Coba play game roll a ball, jika player menyentuh wall player tidak jatuh
6.

Creating collectibles
Disini, kita akan menambahkan sebuah objek kubus bernama Pick Up. Pick Up ini jika
bersentuhan dengan player akan menambahkan nilai game.
Buat objek kubus, rename menjadi pick up.

Ubah transform pick up menjadi sbb

Sehingga penampakan pickup pada scene menjadi seperti ini

Buat script rotator (digunakan untuk memutar rotasi pick up)


Isi scriptnya sebagai berikut

Drag rotator ke object pickup


Lalu play, maka pickup sudah bisa berputar
Jika pickup hanya satu, maka permainan akan cepat selesai, untuk itu kita gandakan pick
up pick up lainnya.
Buat folder prefabs (folder prefabs adalah folder yang digunakan untuk
menyimpan object yang mempunyai sifat sama)
Pada tab hierarchy, masukkan object pick up ke dalam folder prefabs.

Buat empty object lagi untuk mengumpulkan pick up pick up lainnya. Rename
empty object tersebut menjadi pick ups.
Child-kan pick up (yang di hierarchy) ke dalam empty object pick ups sbb

Kemudian duplicate object pick up menjadi 12 pick up menjadi

Untuk memudahkan menggeser-geser objek, gunakan mode dari local ke mode


global

Mewarnai Pick Up
Buat Material dan beri nama pick up

Pada tab inspector, klik kotak warna sebelah tulisan albedo, pilih warna sesuai
keinginan

Drag material pick up ke dalam prefebs pick up

Tara. Maka object pick up sudah berganti warna

7.

Counting Points
Pick Up akah menghilang jika tersentuh oleh Player
Edit script PlayerController
Tambahkan beberapa baris menjadi\

Baris if(other.gameObject.CompareTag("Pick Up")) menandakan jika


semua game objek yang mempunyai tag nama Pick Up maka akah disetActive
menjadi false. (Case sensitive)
Pada prefabs Pick Up kita tambahkan tag sbb

Pilih add tag, kita beri nama Pick Up

Kemudian kita pilih prefabs lagi dan select pick up

Pilih dropdown tag dan pilih tag pick Up

Dengan begitu, otomatis semua objek Pick up mempunyai tag Pick Up semua.
Langkah selanjutnya yaitu perhatikan Box collider pada tab inspector milik
prefabs pick up. Beri centang pada option is trigger. Oto matis semua objek pick
up sudah terscentang is trigger-nya.

Langkah terakhir yaitu kita sempurnakan dengan menambahkan rigidbody ke


dalam pickup object. Pilih prefabs pick up > phisics > Rigidbody

Set Rigidbody menjadi seperti ini

Note :
Is Kinematic menyebabkan objek mengabaikan simulasi
Rigid body menghindari dari kelebihan perhitungan di setiap frame pada
objek dinamis
8.

Displaying Score & text


Menampilkan skor ketika Player menyentuh Pick Up
Buka script PlayerController
Tambahkan baris count seperti pada gambar ini

Buat UI display text count


Pilih create, UI, dan text

Maka akan tampil Canvas, text dan Event system

Text sudah tampil, dengan default berwarna hitam. Lalu warnai sesuka selera

Buat skor menggantung di pojok atas kiri layar, dengan cara mengatur react
transform menjadi sbb

Selanjutnya kita akan mengintegrasikan antara action player dengan count. Buka
script Player controller dan tambahkan baris cont text menjadi sbb.
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float speed;
public Text countText;
private Rigidbody rb;
private int count;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
count = 0;
setCountText ();
}
// Update is called once per frame
void Update () {
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVerti
cal);
rb.AddForce (movement * speed);
}
//set deactivated if tumbrukan
void OnTriggerEnter(Collider other){
if(other.gameObject.CompareTag("Pick Up")){
other.gameObject.SetActive (false);
count = count + 1;

setCountText ();
}
}
void setCountText(){
countText.text = "Count : " + count.ToString();
}
}

Select Player pada hierarchy dan drag count text ke dalam player controller

Play game dan count text sudah bisa berjalan.

Buat Win text


Pilih create > UI > text
Rename menjadi win text

Buka PlayerController dan tambahkan Win text setting di beberapa option sbb
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float speed;
public Text countText;
public Text winText;
private Rigidbody rb;
private int count;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
count = 0;
setCountText ();
winText.text = " ";
}
// Update is called once per frame
void Update () {
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVerti
cal);
rb.AddForce (movement * speed);
}
//set deactivated if tumbrukan
void OnTriggerEnter(Collider other){
if(other.gameObject.CompareTag("Pick Up")){
other.gameObject.SetActive (false);
count = count + 1;
setCountText ();
}
}
void setCountText(){
countText.text = "Count : " + count.ToString();
if (count >= 12) {
winText.text = "You Win";
}
}
}

Select Player pada hierarchy dan drag count text ke dalam player controller

Tarrra game sudah jadi

9.

Building the game


Caranya
Simpan scene terlebih dahulu Pada main menu file > save scene
Kemudian pilih file > build setting

Pilih platform yang dapat memainkan game. Ada banyak platform yang dapat
dibuild menggunakan unity seperti windows, mac, linux, android, dll. Untuk kali
ini kita coba build menggunakan windows

Pilih scene yang akan di build dengan cara drag project yang berekstensi
*(dot)unity

Lalu klik build

Pilih destinasi folder build yang diinginkan

Okke game siap dimainkan