musapro05

Yeni üye
25 Haz 2021
2
0
0
(34) İstanbul Avrupa
Merhaba,
Bir proje üzerinde çalışmaktayım ve bir sorun yaşıyorum. açıkçası sorundan çok bir olayı nasıl gerçekleştireceğimi bilmiyorum.
Sorum; (Branch) üzerinden belli bir koşulun belli bir zaman aralığıyla proje boyunca kontrol edilmesini istiyorum. Şimdiye kadar bunu branch'ı (Delay)'a bağlayıp tekrar branch'a Exac girişleriyle bağlayarak sağlıyordum. Ve bu bazen işlerimi çok zorlaştırıyordu. Peki bunun başka kolay bir yolu var mıydı?

Şimdiden teşekkürler.
 
Tam olarak ne istediğini bilmiyorum ama SetTimer ile bir saat kurup mesela her saniye bir şeyin ne durumda olduğunu kontrol edebilirsin. Bu konuyu bir araştır sanırım anlarsın.
 
GameMode Ya da GameInstance içerisine bir Custom Event Oluştur. Ve Event Begin Playa Şunu koy:

SetTimerByFunctionName

Sonra o Custom Eventin adını yaz ve Loopu işaretle. Ardından kaç saniyede bir olacağını seç mesela 1.0

O Custom eventin içine girdiğin her şey saniyede 1 oyun boyunca kontrol edilecek.
 
Tick ile de yapabilirsin, tick interval ayarını istediğin miktarda (class defaults kısmından) ayarlayabilirsin. Kontrolü kapatmak istersen de tick enabled kısmını false yapıp olayı halledebilirsin.
 
yaptığın yoldan devam et, tick ile yapmak sana fayda değil zarar getirir, set timer, timeline veya delay arasında ise hiçbir fark yok. kolay yoldan kastın fonksiyonu daha derli toplu hale getirmek ise branch ve sonrasını bir fonksiyon haline getir, ayrı bir custom event oluştur, atıyorum ismi "check"    check -> delay -> check yap check fonksiyonunu Begin Play de çağır işini görür.
 
Eğer düzensiz rastgele aralıklarla oyun boyu çağırmak istiyorsan alttaki gibi birşey yapabilirsin. Benim şehir kurma oyununda arsa alanlarının belirli aralıklarla çevresindeki aktörleri kontrol edip onlardan arsa değerini arttıracak parametreleri toplaması gerekiyordu. Geniş bi alanı kapsadığı için işlemciye çok yüklenmemesi ve rastgelelik elde etmek için oyun yüklendiğinde tüm arsaların aynı anda fonksiyonu çağırmaması için şöyle birşey yaptım.

Begin play->delay(random float in range)->Calculate total landvalue

Her arsa 10 ila 35 saniye arasında bir süre sonra Calculate Total Landvalue fonksiyonunu çağırıyor.

Calculate total landvalue içinde de kendi kendini çağıran Set Timer By function name diyerek bu node fonsiyonun kendi adını yazıp time yani kaç saniye sonra çağırılacağını belirten yere de random float in range ile 10 ila 35 saniye yazdım. Böylece fonsiyon kendi içinden yine belli süre sonra kendini çağırıyor. Hiçbir Node karşaması olmuyor Event Graphta. Level kapanana kadar da düzensiz aralıklarla kendi kendini çağırıyor. Burda kritik nokta Set Timer 'da looping dememek. Looping dersen işler karışır çünkü kendi içinden kendini çağırıyorsun bu yüzden tekrar tekrar katlanarak çağırma sayısı artar.