Coroutine digunakan untuk memangil methode/fungsi dengan delay waktu tertentu, Coroutine dan Invoke memiliki kegunaan yang sama tetapi coroutine sangat efektif untuk pemanggilan fungsi yang memiliki banyak activities.
Secara default, coroutine akan dilanjutkan dijalankan pada frame setelah menghasilkan proses tetapi juga memungkinkan untuk mempergunakan waktu tunda menggunakan WaitForSeconds.
Biasanya penamaan fungsi coroutine selalu di tulis setelah IEnumerator.
IEnumerator Shoot(){
..
}
Cara pemanggilan coroutine yang sudah kita buat dengan syntax:
StartCoroutine ("Shoot");
Atau
StartCoroutine (Shoot());
Berikut contoh pengunaan Coroutine pada script:
using UnityEngine;
using System.Collections;
public class Coroutine : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
StartCoroutine ("Shoot");
}
IEnumerator Shoot(){
/*
yield return new WaitForSeconds (2f);
Debug.Log("Hero shoot a gun");
*/
yield return new WaitForSeconds (5f);
while (true) {
Debug.Log ("Hero shoot a bullet at: " + Time.time);
yield return new WaitForSeconds (2f);
}
}
}
Hasil dari code diatas adalah StartCoroutine ("Shoot") akan menulis pada console "Hero shoot a bullet at (waktu)" selama 2 detik dan akan delay selama 5 detik.
Seperti terlihat pada gambar dibawah ini:

Secara default, coroutine akan dilanjutkan dijalankan pada frame setelah menghasilkan proses tetapi juga memungkinkan untuk mempergunakan waktu tunda menggunakan WaitForSeconds.
Biasanya penamaan fungsi coroutine selalu di tulis setelah IEnumerator.
IEnumerator Shoot(){
..
}
Cara pemanggilan coroutine yang sudah kita buat dengan syntax:
StartCoroutine ("Shoot");
Atau
StartCoroutine (Shoot());
Berikut contoh pengunaan Coroutine pada script:
using UnityEngine;
using System.Collections;
public class Coroutine : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
StartCoroutine ("Shoot");
}
IEnumerator Shoot(){
/*
yield return new WaitForSeconds (2f);
Debug.Log("Hero shoot a gun");
*/
yield return new WaitForSeconds (5f);
while (true) {
Debug.Log ("Hero shoot a bullet at: " + Time.time);
yield return new WaitForSeconds (2f);
}
}
}
Hasil dari code diatas adalah StartCoroutine ("Shoot") akan menulis pada console "Hero shoot a bullet at (waktu)" selama 2 detik dan akan delay selama 5 detik.
Seperti terlihat pada gambar dibawah ini:

Post A Comment:
0 comments: