WaitForSeconds
- Oyun Geliştirme kursu
- Orta seviye
- Ders 45/83
- 4 dk
WaitForSeconds ile bir coroutine'i bekletmeyi öğrenirsin.
WaitForSeconds ile zaman gecikmesi
Bir coroutine'in kare bazında değil, gerçek süre olarak belirli bir saniye beklemesi istendiğinde WaitForSeconds kullanılır. yield return new WaitForSeconds(2.0f); satırı işlemi tam 2 saniye boyunca duraklatır.
IEnumerator ReloadWeapon() {
Debug.Log("Şarjör değiştiriliyor...");
yield return new WaitForSeconds(2.5f);
Debug.Log("Şarjör takıldı!");
}Silah doldurma, büyü bekleme süreleri (cooldown) ve diyaloğun ekranda kalma süresi bu şekilde yönetilir.
Time.timeScale ve WaitForSecondsRealtime
WaitForSeconds oyunun iç zamanı olan Time.timeScale değerine bağlıdır; oyun duraklatıldığında (timeScale = 0) bekleme süresi de donar.
// Oyun dursa dahi çalışan gerçek zamanlı bekleme
yield return new WaitForSecondsRealtime(1.0f);Oyun duraklatma menüsü animasyonlarında veya gerçek dünya saatini baz alan işlemlerde WaitForSecondsRealtime tercih edilir.
Uygulama Gecikme süresi bilgisini yazdır
delay değişkenine "2.5", unit değişkenine "Seconds" ata. Ekrana Delay: 2.5 | Unit: Seconds yazdır.
Başlangıç kodu
using System;
class Program
{
static void Main()
{
// delay ve unit değerlerini tanımlayıp yazdır
}
}Örnek çözüm
using System;
class Program
{
static void Main()
{
string delay = "2.5";
string unit = "Seconds";
Console.WriteLine("Delay: " + delay + " | Unit: " + unit);
}
}Beklenen çıktı
Delay: 2.5 | Unit: Seconds
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Unity'de bir coroutine'i oyun zamanına bağlı olarak 3 saniye duraklatmak için hangi ifade kullanılır?
- System.Threading.Thread.Sleep(3000);
- yield return new WaitForSeconds(3f); Doğru cevap
- yield return 3;
- wait.Seconds(3);
Açıklama: yield return new WaitForSeconds(3f), Unity'de oyun süresine bağlı olarak 3 saniye bekleme sağlayan nesnedir.
2 Saniye cinsinden gecikme nesnesi oluştur
yield return new ____(1.5f);
yield return new WaitForSeconds(1.5f);
Açıklama: Saniye bazlı bekleme gerçekleştirmek için WaitForSeconds sınıfı örneklenir.
3 Zaman gecikmesi terimleri
| Kavram | Anlamı |
|---|---|
WaitForSeconds |
Oyun süresine bağlı saniye bekletir |
WaitForSecondsRealtime |
Gerçek zamanlı saniye bekletir |
Time.timeScale = 0 |
Oyun zamanını duraklatır |
Delay |
İşlemler arası zaman aralığı |