Unity C# Tutorial Indonesia : Basic 22 - Invoke




Invoke biasa digunakan untuk memberi jeda atau waktu sebelum suatu event diproses, sebagai contoh seorang pelari akan mulai berlari setelah diberi aba-aba hitungan 3 detik, 3 detik adalah jeda sebelum event dan berlari adalah event.


MULAI

1. Invoke
Buat C# Script beri nama "LatihanInvoke" dan tambahkan script ke objek Main Camera. Kemudian buka script, masukkan listing program di bawah :

A. LatihanInvoke.cs
using UnityEngine;
using System.Collections;

public class LatihanInvoke : MonoBehaviour {

                float detik;

                void Start () {
                                Invoke("PrintSaya", 3);
                }
               
                void Update(){
                                detik += Time.deltaTime;
                }
               
                void PrintSaya(){
                                Debug.Log("Latihan Invoke " + "Pada Detik Ke " + (int)detik);
                }

}

Penjelasan :
Pertama, float detik adalah variabel bertipe pecahan yang digunakan untuk menghitung detik. Di Method Update , detik tadi diberi nilai yang akan terus bertambah, nilai dimulai dari 0.

Perintah invoke hanya akan menjalankan sebuah Method, jadi dibuat terlebih dahulu method "PrintSaya". Di dalam Metode PrintSaya dibuat listing program untuk membuat output text/angka yaitu Debug.Log.

Jika Method selesai dibuat, kemudian panggil metode tersebut di Method Start() dengan perintah Invoke("Nama Metode", waktu Jeda).





Jalankan game dan lihat jendela inspektor, output baru dicetak setelah 3 detik berlalu.




2. Invoke Repeating
Sama seperti invoke , IR juga memiliki kegunaan yang sama, tapi IR dapat mengulang proses atau memanggil metode yang sama secara berulang-ulang.

Buat Script baru atau remake script "LatihanInvoke" dan masukkan baris program dibawah :

B. LatihanInvoke.cs
using UnityEngine;
using System.Collections;

public class LatihanInvoke : MonoBehaviour {

                float detik;

                void Start () {
                                InvokeRepeating("PrintSaya", 2, 5);
                }
               
                void Update(){
                                detik += Time.deltaTime;
                }
               
                void PrintSaya(){
                                Debug.Log("Latihan Invoke " + "Pada Detik Ke " + (int)detik);
                }

}

Penjelasan : InvokeRepeating("PrintSaya", 2, 5)
Nilai 2 adalah jeda waktu untuk proses pemanggilan method pertama dan 5 adalah jeda waktu untuk proses berikutnya, secara sederhana metode yang pertama akan dipanggil setelah 2 detik berlalu dan metode selanjutnya akan dipanggil setelah 5 detik berlalu.




Jalankan game dan tunggu beberapa saat.



SELESAI



Tag : Basic
Back To Top