Gameloper'a Hoş Geldiniz!

Gameloper, oyun geliştiriciler için oluşturulmuş bir topluluktur. Unity, Unreal Engine ve Godot gibi oyun motorları hakkında bilgi paylaşabilir, sorular sorabilir ve ücretsiz assetler keşfedebilirsiniz.

Hemen Kayıt Ol!

Unreal Engine'de Do Once Node Kullanımı: Mantıksal Akış Kontrolü

  • Konuyu Başlatan Konuyu Başlatan Druid
  • Başlangıç tarihi Başlangıç tarihi

Druid

Administrator
Yönetici
Katılım
11 Mar 2026
Mesajlar
52
Tepkime puanı
5
Puan
8
Unreal Engine'de Do Once Node Kullanımı: Mantıksal Akış Kontrolü

Do Once Nedir ve Neden Kullanılır?

Unreal Engine ile oyun geliştirme sürecinde, belirli bir kod bloğunun veya işlemin sadece bir kez çalışmasını istediğimiz durumlar sıklıkla karşımıza çıkar. Örneğin, bir karakterin bir ödül kutusunu açması, bir ses efektinin sadece ilk tetiklemede çalması veya oyun bittiğinde ekrana gelen animasyonun sadece bir kez oynaması gibi senaryolarda Do Once node'u (düğümü) hayati önem taşır.

Do Once, akışı kontrol eden bir kapı gibidir. İçeriye giren ilk sinyale izin verir, ancak siz kapıyı tekrar açana (Reset edene) kadar sonraki sinyalleri engeller.

Do Once Node Yapısı ve Girişleri

Blueprints ekranında sağ tıklayıp "Do Once" yazdığınızda karşınıza çıkan bu node'un dört ana girişi ve bir çıkışı bulunur:

  • In (Giriş): Akışın başladığı noktadır. Buraya gelen sinyal, eğer kapı kapalı değilse çıkışa aktarılır.
  • Reset: Kilitlenen düğümü tekrar başlangıç durumuna döndürür. Bu giriş tetiklendiğinde, "In" girişinden gelen bir sonraki sinyal tekrar çalışabilir.
  • Start Closed: Eğer bu seçenek işaretlenirse, oyun başladığında düğüm varsayılan olarak kilitli gelir. İlk sinyalin geçmesi için önce "Reset" tetiklenmelidir.
  • Completed (Çıkış): Akışın başarıyla geçtiği ve kodun devam edeceği çıkış pinidir.

Pratik Örnek: Karakter Öldüğünde Bir Kez Ses Çalma

Sıklıkla yapılan bir hata, karakter ölümü gibi Event Tick veya hızlı tetiklenen olaylarda ses çalmaya çalışmaktır. Karakter her karede (frame) "Öldü" sinyali gönderiyorsa, ses üst üste binerek kulak tırmalayıcı bir hale gelir. İşte burada Do Once devreye girer.

Kod:
Event AnyDamage
-> Health <= 0 (Branch)
-> True
-> Do Once
   -> Play Sound at Location
   -> Create Widget (Death Screen)

Yukarıdaki mantıkta, karakter hasar aldığında canı sıfırın altına düşerse Do Once sayesinde ölüm sesi sadece bir kez çalacaktır.

Do Once ve Reset Mekanizması

Bazı durumlarda işlemin bir kez yapıldıktan sonra, belirli bir şart gerçekleşince tekrar "yapılabilir" olmasını isteriz.

Senaryo: Bir oyuncu bir butona basıyor ve kapı açılıyor. Kapı açılırken butona defalarca basılmasını engellemek istiyoruz ancak kapı kapandıktan sonra butonun tekrar çalışmasını istiyoruz.

  1. Butona basılır -> Do Once tetiklenir.
  2. Kapı açılma animasyonu başlar.
  3. Animasyon biter -> Reset pinine sinyal gönderilir.
  4. Artık buton tekrar basılabilir durumdadır.

SEO Performansı İçin İpuçları

Unreal Engine Blueprints sisteminde Optimization (Optimizasyon) yaparken Do Once kullanımı performansı doğrudan etkilemez ancak mantıksal hataları (Bug) önler. Özellikle Event Tick gibi saniyede 60+ kez çalışan fonksiyonların içinde kontrolsüz logic çalıştırmak yerine Do Once kullanarak işlem yükünü azaltabilirsiniz.

Eğer birden fazla kez ama sınırlı sayıda (örneğin 3 kez) bir işlemi tetiklemek istiyorsanız, Do Once yerine bir tamsayı (Integer) değişkeni ve Clamp kullanarak kendi sayacınızı oluşturabilirsiniz.

Özet

  • Neden: Kodun tekrarlanmasını önlemek için.
  • Nasıl: İşlem öncesine Do Once ekleyerek.
  • Tekrar Çalıştırma: Reset pini ile.

Unreal Engine öğrenme sürecinde Do Once ve kardeş düğümü olan Do N (N kez çalıştır) mantığını oturtmak, daha temiz ve hatasız Blueprint'ler yazmanızı sağlayacaktır.
 
Geri
Üst