Oyun Geliştirme
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.
Örnek çözümü göster
using System;
class Program
{
static void Main()
{
string routineType = "Coroutine";
string execution = "Pausable";
Console.WriteLine("Type: " + routineType + " | Execution: " + execution);
}
}
Kendini test et
-
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
- Coroutine'lerin hiçbir zaman değişken veya parametre kabul etmemesi
Cevabı göster
Coroutine'in çalışmasını duraklatıp sonraki karelerde devam edebilmesi — Coroutine, yield ifadesiyle çalışmasını duraklatıp sonraki karelerde kaldığı satırdan devam edebilen bir yapıdır.
-
Coroutine metot imzasını tamamla
____ SpawnWave()
Cevabı göster
IEnumerator SpawnWave()
-
Coroutine temel kavramları
- 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
Sıradaki ders: IEnumerator ve yield