StartCoroutine
- Oyun Geliştirme kursu
- Orta seviye
- Ders 46/83
- 4 dk
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
using System;
class Program
{
static void Main()
{
// launcher ve targetRoutine değerlerini tanımlayıp yazdır
}
}Örnek çözüm
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
Coroutine routine = ____(DoSomething());
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 |