Coroutine

class in UnityEngine / Inherits from:YieldInstructionImplemented 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

Bu blogdaki popüler yayınlar

Important Classes - Vectors

RequireComponent

Important Classes - GameObject