Özet - Coroutine
- Oyun Geliştirme kursu
- Orta seviye
- Ders 48/83
- 4 dk
Coroutine kullanımını bir özet görevle pekiştirirsin.
Özet: Coroutine Sistemi
Bu grupta Unity'de zamana yayılan süreçleri yönetmenin anahtarı olan Coroutine sistemini öğrendiniz. IEnumerator dönüş tipiyle tanımlanan metotlar, yield return null ile kare bazlı veya WaitForSeconds ile saniye bazlı duraklatılır.
// Coroutine yaşam döngüsü özeti:
// IEnumerator DoWork() -> yield return new WaitForSeconds(1f)
// Coroutine job = StartCoroutine(DoWork())
// StopCoroutine(job)StartCoroutine ile başlatılan görevler, gerektiğinde StopCoroutine ile erkenden iptal edilerek performanslı ve temiz kod mimarisi elde edilir.
Uygulama Tam coroutine profilini yazdır
routine ("Countdown"), wait ("WaitForSeconds") ve action ("StartCoroutine") değişkenlerini tanımla. Ekrana Routine: Countdown | Wait: WaitForSeconds | Launcher: StartCoroutine yazdır.
Başlangıç kodu
using System;
class Program
{
static void Main()
{
// routine, wait ve action değerlerini tanımlayıp yazdır
}
}Örnek çözüm
using System;
class Program
{
static void Main()
{
string routine = "Countdown";
string wait = "WaitForSeconds";
string action = "StartCoroutine";
Console.WriteLine("Routine: " + routine + " | Wait: " + wait + " | Launcher: " + action);
}
}Beklenen çıktı
Routine: Countdown | Wait: WaitForSeconds | Launcher: StartCoroutine
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Coroutine mekanizmasının temel çalışma prensibi hakkında verilen ifadelerden hangisi doğrudur?
- Ayrı bir işletim sistemi iş parçacığında (thread) çalışır ve Unity API'lerine erişemez.
- Yalnızca void döndürebilir ve Update fonksiyonunun tamamen yerini alır.
- Sadece 3D nesnelerin poligon sayısını düşürmek amacıyla kullanılan bir render algoritmasıdır.
- IEnumerator döndürür, yield ile duraklayıp sonraki karede devam edebilir ve StartCoroutine ile başlatılır. Doğru cevap
Açıklama: Coroutine'ler IEnumerator döndürür, yield ile bekletilir ve ana iş parçacığında StartCoroutine ile yürütülür.
2 Yarım saniye bekleme nesnesi oluştur
IEnumerator FadeOut() { yield return new ____(0.5f); }
IEnumerator FadeOut() { yield return new WaitForSeconds(0.5f); }
Açıklama: Zaman bazlı gecikme oluştururken WaitForSeconds sınıfı kullanılır.
3 Coroutine genel özeti
| Kavram | Anlamı |
|---|---|
IEnumerator |
Coroutine dönüş tipi |
yield return null |
Sonraki kareye kadar bekle |
StartCoroutine |
Coroutine'i çalıştırır |
StopCoroutine |
Coroutine'i sonlandırır |