StopCoroutine
- Oyun Geliştirme kursu
- Orta seviye
- Ders 47/83
- 4 dk
StopCoroutine ile çalışan bir coroutine'i durdurmayı öğrenirsin.
StopCoroutine ile durdurma
Çalışmakta olan bir coroutine'i süresi dolmadan yarıda kesmek için StopCoroutine() metodu kullanılır. En güvenilir yöntem, başlatma anında elde edilen Coroutine referansını metoda parametre olarak vermektir.
// Çalışan görevi referans üzerinden iptal etme
if (activeRoutine != null) {
StopCoroutine(activeRoutine);
}Örneğin karakter darbe aldığında devam eden büyü yapma (casting) coroutine'i bu şekilde iptal edilir.
StopAllCoroutines ve GameObject deaktivasyonu
Bir nesne üzerindeki tüm zamanlanmış görevleri topluca sıfırlamak için StopAllCoroutines() çağrılır. Ayrıca bir GameObject SetActive(false) ile kapatıldığında üzerindeki tüm coroutine'ler otomatik olarak sonlandırılır.
void OnDisable() {
// Nesne devre dışı kalırken coroutine'leri temizle
StopAllCoroutines();
}Fakat sadece betiğin (script) enabled = false yapılması çalışan coroutine'leri durdurmaz; nesnenin tamamen kapanması gerekir.
Uygulama Durdurma komutunu ve durumunu yazdır
command değişkenine "StopCoroutine", status değişkenine "Cancelled" ata. Ekrana Command: StopCoroutine | Status: Cancelled yazdır.
Başlangıç kodu
using System;
class Program
{
static void Main()
{
// command ve status değerlerini tanımlayıp yazdır
}
}Örnek çözüm
using System;
class Program
{
static void Main()
{
string command = "StopCoroutine";
string status = "Cancelled";
Console.WriteLine("Command: " + command + " | Status: " + status);
}
}Beklenen çıktı
Command: StopCoroutine | Status: Cancelled
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir MonoBehaviour nesnesinde o anda aktif çalışan TÜM coroutine'leri tek hamlede durdurmak için hangi metot çağrılır?
- ClearRoutines();
- AbortAll();
- StopAllCoroutines(); Doğru cevap
- KillCoroutines();
Açıklama: StopAllCoroutines(), ilgili betik üzerinde çalışmakta olan bütün coroutine süreçlerini tek seferde iptal eder.
2 Çalışan coroutine'i referans ile durdur
StopCoroutine(____);
StopCoroutine(activeRoutine);
Açıklama: Belirli bir coroutine'i durdurmak için StartCoroutine tarafından döndürülen referans parametre verilir.
3 Durdurma ve temizlik kavramları
| Kavram | Anlamı |
|---|---|
StopCoroutine |
Coroutine'i erkenden durduran metot |
StopAllCoroutines |
Tüm coroutine'leri iptal eder |
SetActive(false) |
Nesneyi kapatıp coroutine durdurur |
Cleanup |
Nesne kapalıyken görevleri temizle |