Secara sederhana Combo adalah sebuah event/keadaan yang berganti-ganti atau event yang selalu diupdate. Keadaan ini bisa memiliki batasan dan bisa juga tak terbatas.
Contoh dalam game fighting (pertarungan) karakter memiliki 4 gerakan pukulan yang berbeda tetapi tombol yang ditekan adalah tombol yang sama.
MULAI
Mimin vcg akan mencoba implementasi sederhana yaitu Combo Warna pada kubus, dimana ketika klik kiri ditekan maka warna akan berubah-ubah.
Dan ketika warna sudah diupdate pada combo sekian tetapi klik kiri tidak ditekan lagi maka combo secara otomatis akan kembali ke combo awal.
Tahap pertama tambahkan objek Cube ke jendela game.
Buat C# Script "ComboSystem" dan tambahkan ke objek Cube.
Buka script dan tuliskan listing program berikut.
A. ComboSystem.cs
using UnityEngine;
using System.Collections;
public class ComboSystem : MonoBehaviour {
private
int point = 1;
private
int totalCombo = 4;
private
float timer = 0;
void
Update () {
PointBertambah();
TimeBetweenCombos();
ComboWarna();
}
void
PointBertambah(){
if(point
<= totalCombo){
if(Input.GetMouseButtonDown(0)){
timer
= 2;
point
+= 1;
}
}else{
point
= 1;
}
}
void
TimeBetweenCombos(){
if(timer
> 0){
timer
-= Time.deltaTime;
}
if(timer
<= 0){
point
= 1;
}
}
void
ComboWarna(){
if(point
== 1)
gameObject.renderer.material.color
= Color.red;
if(point
== 2)
gameObject.renderer.material.color
= Color.blue;
if(point
== 3)
gameObject.renderer.material.color
= Color.green;
if(point
== 4)
gameObject.renderer.material.color
= Color.yellow;
}
}
Penjelasan :
Tahap pertama dideklarasikan beberapa variabel yaitu "int point" yang digunakan untuk menentukan point combo, "int totalCombo" digunakan untuk mendeklarasikan jumlah combo dan "float timer" yang digunakan untuk mereset point combo jika tidak ada proses penekanan pada mouse.
Kemudian dibuat 3 metode utama yaitu :
PointBertambah(){}
Dalam metode ini digunakan logika sederhana yaitu jika nilai point kurang dari jumlah combo dan jika klik kiri ditekan maka point bertambah 1 dan nilai timer menjadi 2. Nah jika nilai point lebih dari jumlah combo maka nilai point direset ke nilai awal. "timer = 2" adalah lama waktu sebelum point direset ke nilai awal.
TimeBetweenCombos(){}
Metode yang digunakan untuk mereset nilai point, jika tidak ada penekanan pada mouse maka point akan direset ke nilai awal.
ComboWarna(){}
Pada metode ini hanya digunakan logika percabangan, yaitu jika nilai point = A maka Warna Cube menjadi A.
Jalankan game dan coba tekan beberapa kali klik kiri pada mouse.
SELESAI