CodeBlanks Logo Icon CodeBlanks

Coroutine nedir?

Coroutine'in zamanla yayılan işlemler için kullanıldığını öğrenirsin.

Coroutine nedir?

Normal bir C# metodu çağrıldığında tek bir kare içinde baştan sona çalışır ve tamamlanır. Coroutine ise yürütülmesini geçici olarak duraklatıp (yield) kontrolü Unity oyun döngüsüne devreden, ardından sonraki karelerde kaldığı yerden devam eden özel bir fonksiyondur.

// Zamana yayılan bir coroutine örneği
IEnumerator FadeRoutine() {
    // Bir sonraki kareye kadar bekle
    yield return null;
}

Bu mekanizma, saniyeler süren animasyonları veya sıralı olayları Update metodunu karmaşık sayaçlarla doldurmadan yazmayı sağlar.

Coroutine kullanım alanları

Coroutine'ler oyun içi gecikmeler ve zamana yayılan hareketler için idealdir. Bir karakterin yavaşça görünmez olması (fade), düşman dalgalarının 3 saniye arayla doğması veya silah doldurma süresi coroutine ile kolayca kodlanır.

// Geri sayım sayacı coroutine yapısı
IEnumerator Countdown() {
    // Zamanla ilerleyen adımlar
    yield return null;
}

İşlemler arka planda sıralı bir akış olarak okunabilir kaldığı için kodun bakımı çok daha pratiktir.

Uygulama Coroutine profilini yazdır

routineType değişkenine "Coroutine", execution değişkenine "Pausable" ata. Ekrana Type: Coroutine | Execution: Pausable yazdır.

Başlangıç kodu

Player.cs
using System;

class Program
{
    static void Main()
    {
        // routineType ve execution değerlerini tanımlayıp yazdır
    }
}

Örnek çözüm

Player.cs
using System;

class Program
{
    static void Main()
    {
        string routineType = "Coroutine";
        string execution = "Pausable";
        Console.WriteLine("Type: " + routineType + " | Execution: " + execution);
    }
}

Beklenen çıktı

Type: Coroutine | Execution: Pausable

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Standart bir C# fonksiyonu ile bir Coroutine arasındaki en belirgin fark nedir?

  • Coroutine'lerin yalnızca ekran kartı üzerinde C++ ile çalışması
  • Standart fonksiyonların sınırsız sayıda kare boyunca beklemesi
  • Coroutine'in çalışmasını duraklatıp sonraki karelerde devam edebilmesi Doğru cevap
  • Coroutine'lerin hiçbir zaman değişken veya parametre kabul etmemesi

Açıklama: Coroutine, yield ifadesiyle çalışmasını duraklatıp sonraki karelerde kaldığı satırdan devam edebilen bir yapıdır.

2 Coroutine metot imzasını tamamla

Soru
____ SpawnWave()
Cevap
IEnumerator SpawnWave()

Açıklama: Unity'de coroutine tanımlamak için metot dönüş tipi IEnumerator olarak belirtilir.

3 Coroutine temel kavramları

Kavram Anlamı
Coroutine Kareler arası duraklatılabilir metot
yield Çalışmayı geçici Unity'ye devret
Update() Her karede kesintisiz çalışan döngü
Fade Effect Coroutine ile kare kare saydamlaşma

Orta seviye bölümündeki tüm dersler