Tutorial ini adalah tutorial intermediate jadi sebelum memulai tutorial diharapkan sudah memahami tutorial tingkat basic.
MULAI
Game "My Balloon" adalah game 3 dimensi yang dimana pemain harus menembak balon sebanyak-banyaknya untuk menambah point.
Tahap pertama buat beberapa folder yang akan digunakan, yaitu : Scenes, Scripts, Audios, Material, Models, Prefabs dan Texture.
Selanjutnya masuk ke folder Scripts dan buat C# Script "PlayerShooter", buka script masukkan listing program berikut :
A. PlayerShooter.cs
using UnityEngine;
using System.Collections;
public class PlayerShooter : MonoBehaviour {
Ray
ray;
RaycastHit
hit;
AudioSource
suaraPistol;
public
AudioClip clipPistol;
void
Awake(){
suaraPistol
= GetComponent<AudioSource>();
}
void
Update(){
if(Input.GetMouseButtonDown(0)){
suaraPistol.clip
= clipPistol;
suaraPistol.Play();
ray.origin
= transform.position;
ray.direction
= transform.TransformDirection(Vector3.forward);
if(Physics.Raycast(ray,
out hit, Mathf.Infinity)){
if(hit.collider.gameObject.tag
== "Enemy"){
Destroy(hit.collider.gameObject);
ScoreManager.score
+= 1;
}
}
Debug.DrawRay(transform.position,
transform.TransformDirection(Vector3.forward) * 100, Color.red);
}
}
}
Save script dan masuk kembali ke unity, akan muncul error tentang baris perintah "ScoreManager", alasannya karena belum dibuat script "ScoreManager". Untuk mencegah error tambahkan printah "//" pada baris ScoreManager.score.
Pemberian tanda hanya sementara setelah script "ScoreManager" dibuat tanda dihapus.
//ScoreManager.score += 1;
Langkah kedua adalah tambahkan beberapa komponen ke jendela game.
1. First Person Controller.
Buka FPS dan berikan script "PlayerShooter" ke objek Main Camera yang ada di dalam FPS, tambahkan juga komponen AudioSource. Kemudian hapus Main Camera yang ada di luar FPS.
Pada scrip "PlayerShooter" terdapat kotak kosong untuk "Clip Pistol", masukkan suara pistol ke kotak tersebut, jadi ketika menembak suara pistol akan dijalankan.
2. UI Image
Tambahkan UI Image dan ubah nama menjadi "Crosshair", atur posisi cross hair berada di tengah layar dan atur juga anchor point Crosshair di posisi tengah. Ubah texture UI Image menjadi Crosshair.png. Untuk texture crosshair dapat dicari di google gambar.
3. Tambahkan directional light untuk pencahayaan
4. Tambahkan objek alas menggunakan objek Cube.
5. Ubah texture langit dengan Sky Boxes, klik Asset - Import Package- Skyboxes. Untuk mengganti langit klik Edit - Render Settings - Skybox Material.
Klik objek FPS dan lihat jendela inspektor, pada bagian Character Motor(Script) - Movement, ubah nilai menjadi 0 , berguna agar pemain tidak dapat berjalan, hapus ceklis pada bagian Jumping dan Moving platform juga.
Maka hasilnya pada jendela scene seperti gamabr di atas.
Dan ini hasil dilihat dari jendela game.
Klik objek apa saja, kemudian buat Tag Name baru, klik Untagged - Add Tag, kemudian tambah tag baru "Enemy".
Tahap percobaan apakah Raycast sudah dapat dibuat ketika klik kiri ditekan, jalankan game dan coba klik kiri, jika keluar garis merah pada jendela Scene maka Raycast berhasil dibuat.
Tahap ketiga adalah buat objek kosong dan beri nama "GameSettings". Create - Create Empty.
Buat 3 C# Script baru yaitu : EnemyDestroy.cs, EnemyManager.cs dan EnemyMoveY.cs. Tambahkan script "EnemyManager" ke objek GameSettings.
Buka masing-masing script dan masukkan listing program berikut :
B. EnemyDestroy.cs
using UnityEngine;
using System.Collections;
public class EnemyDestroy : MonoBehaviour {
void
Update () {
Destroy(gameObject,
8);
}
}
C. EnemyManager.cs
using UnityEngine;
using System.Collections;
public class EnemyManager : MonoBehaviour {
public
GameObject[] balon;
float
timer;
void
Update(){
timer
+= Time.deltaTime;
int
xPointRespawn = Random.Range(-20, 20);
int
zPointRespawn = Random.Range(-20, 20);
int
pointBalon = Random.Range(0, balon.Length);
if(timer
>= 1){
timer
= 0;
Instantiate(balon[pointBalon],
new Vector3(xPointRespawn, -2f, zPointRespawn), Quaternion.identity);
}
}
}
D. EnemyMoveY.cs
using UnityEngine;
using System.Collections;
public class EnemyMoveY : MonoBehaviour {
void
Update () {
transform.Translate(0f,
2 * Time.deltaTime, 0f);
}
}
Oke, Tahap Persiapan selesai.
SELESAI
Part 2 : Proyek 2 : Free Game "My Balloon" [part 2/3]