CodeBlanks Logo Icon CodeBlanks

StartCoroutine

StartCoroutine ile bir coroutine başlatmayı öğrenirsin.

StartCoroutine ile başlatma

Coroutine metotları sıradan fonksiyonlar gibi doğrudan SpawnWave() şeklinde çağrılamaz. Bir MonoBehaviour nesnesi üzerinden StartCoroutine() metodu aracılığıyla Unity yürütme döngüsüne kaydedilmelidir.

void Start() {
    // Coroutine'i başlatma
    StartCoroutine(SpawnEnemyWave());
}

StartCoroutine çağrıldığında ilk yield satırına kadar olan kod anında çalışır, ardından duraklama başlar.

Coroutine referansı saklama

StartCoroutine metodu geriye bir Coroutine nesnesi döndürür. Bu referansı bir değişkende saklamak, ilerleyen anlarda bu spesifik görevi durdurabilmek için kritik öneme sahiptir.

Coroutine activeRoutine;

void FireSkill() {
    activeRoutine = StartCoroutine(CastSpell());
}

Referans saklanmazsa aynı anda başlatılan birden fazla coroutine arasından belirli bir tanesini hedef alıp durdurmak zorlaşır.

Uygulama Başlatıcı ve hedef metodu yazdır

launcher değişkenine "StartCoroutine", targetRoutine değişkenine "SpawnWave" ata. Ekrana Launcher: StartCoroutine | Routine: SpawnWave yazdır.

Başlangıç kodu

Player.cs
using System;

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

Örnek çözüm

Player.cs
using System;

class Program
{
    static void Main()
    {
        string launcher = "StartCoroutine";
        string targetRoutine = "SpawnWave";
        Console.WriteLine("Launcher: " + launcher + " | Routine: " + targetRoutine);
    }
}

Beklenen çıktı

Launcher: StartCoroutine | Routine: SpawnWave

Soru ve cevaplar

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

1 Bir MonoBehaviour betiğinde IEnumerator döndüren 'AttackRoutine' coroutine'ini doğru çalıştırma yöntemi hangisidir?

  • StartCoroutine(AttackRoutine()); Doğru cevap
  • AttackRoutine();
  • run AttackRoutine();
  • new AttackRoutine();

Açıklama: Coroutine'ler doğrudan çağrıldığında çalışmaz; mutlaka StartCoroutine sarmalayıcısıyla başlatılmalıdır.

2 Coroutine başlat ve referansı tut

Soru
Coroutine routine = ____(DoSomething());
Cevap
Coroutine routine = StartCoroutine(DoSomething());

Açıklama: Bir coroutine'i Unity üzerinde başlatmak için StartCoroutine metodu çağrılır.

3 Başlatma kavramları

Kavram Anlamı
StartCoroutine Coroutine'i başlatan metot
Coroutine Çalışan coroutine örneği tanıtıcısı
MonoBehaviour StartCoroutine'i içeren sınıf
Metot Çağrısı StartCoroutine'a verilen fonksiyon

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