DeltaSeconds amacı tam da budur.
Diyelim ki karakter koştuğu zaman 5sn de tükenmesi gereken bir stamina tasarlayalım. Stamina'nın tamamı 100 birim olsun. Bu durumda bir koşunun saniyede 20 stamina tüketmesi gerekir. Eğer bir frame 0.01 sn alıyorsa o framede tükenmesi gereken stamina miktarı 20 x 0.01 = 0.2 birimdir. Sonuç olarak her frame: 1 saniyede tükenmesi gereken ile geçen sürenin çarpımı kadardır.
// C++ Decleration (Header)
// C++ Definition (Source)
Kod:
if (IsRunning == true)
{
stamina -= 20 * DeltaSeconds;
if (stamina <= 0)
{
OnStaminaRunOut(); // staminanın bittiğini bir event yada delege ile yayınla...
}
}
Blueprint üzerinde de Tick eventi üzerinde, eğer koşuyorsa; stamina değerinden; 1saniyede tükenmesi gereken stamina değeri ile DeltaSeconds değerinin çarpımını çıkarmanız ve küçük eşit 0 durumunu kontrol etmeniz gerekir.
Delay kullanmamanızı öneririm.