Coroutine
class in UnityEngine / Inherits from:YieldInstruction/ Implemented in:UnityEngine.CoreModule
MonoBehaviour.StartCoroutine, bir Coroutine döndürür. Bu sınıfın örnekleri yalnızca bu coroutinelere başvurmak için kullanılır ve herhangi bir açık özelliği veya fonksiyonu bulunmaz.
Bir coroutine, kendisine verilen YieldInstruction tamamlanana kadar (yield) yürütmesini durdurabilen bir fonksiyondur.
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
IEnumerator WaitAndPrint()
{
// 5 saniye boyunca yürütümü durdur.
yield return new WaitForSeconds(5);
print("WaitAndPrint " + Time.time);
}
IEnumerator Start()
{
print("Starting " + Time.time);
// WaitAndPrint fonksiyonunu bir coroutine olarak başlat.
yield return StartCoroutine("WaitAndPrint");
print("Done " + Time.time);
}
}
Bu örnek, normal bir Start fonksiyonunu göstermektedir:
using UnityEngine;
using System.Collections;
// Bu örnekte bir coroutine'i nasıl çağıracağımızı ve fonksiyonun aynı anda çalışmasını nasıl
// sağlayacağımızı gösteriyoruz. Start, IEnumerator'a ihtiyaç duymaz.
public class ExampleClass : MonoBehaviour
{
private IEnumerator coroutine;
void Start()
{
// - 0 saniye sonra "Başlangıç 0.0 saniye" yazdırılır
// - 0 saniye sonra "Coroutine başladı" yazdırılır
// - 2 saniye sonra "Coroutine sonlandı: 2.0 saniye" yazdırılır
print("Starting " + Time.time + " seconds");
// WaitAndPrint fonksiyonunu bir coroutine olarak başlat
coroutine = WaitAndPrint(2.0f);
StartCoroutine(coroutine);
print("Coroutine started");
}
private IEnumerator WaitAndPrint(float waitTime)
{
yield return new WaitForSeconds(waitTime);
print("Coroutine ended: " + Time.time + " seconds");
}
}
Miras Alınan Üyeler
Bu blog Unity Docs'un Türkçeye çevrilmiş halidir.
Yorumlar
Yorum Gönder