Burada benim önemliden önemsize doğru söyleyebileceğim bir kaç şey var.
1. Hiç kimse oyunu durduramayacak ve oyunun daha başlarındasın. Bu aşamada böyle şeylere takılmak bence doğru değil. Eğer gerçekten önemli ise "polish" safhasında düşünülebilecek bir şey.
2. Yargılarını göz kararı veriyorsun. Göz kararı yanıltıcı olabilir. Eğer aradaki zamanlamayı merak ediyorsan, tam olarak "call shooted" node unun yanına bir print string koymalısın. Ayrıca settings ten log larda timecode u da etkinleştirmelisin. Bunun haricinde FireRate vb. değişkenleride log lamalısın. Böylece tam olarak ne değişiyor, ne kadar değişiyor etc. herşeyi görebilirsin. Belki hiç beklemediğin bir yerde bir hata vardır ama sen fark etmiyorsundur. Örneğin FireRate in beklemediğin bir yerden yanlış geliyorsa bunu loglardan direk görebilirsin. Aradaki mesafeleri ölçmek istiyorsan measurement tool var.
3. Tick in DeltaTime ının altına düştüğünde artık zamanlama mükemmel çalışamaz. Mesela Tick DeltaTime 0.02 ise ancak sen her 0.01 saniyede bir şey yaptırmak istiyorsan engine loop süresinin altına düşeceğin için istediğin bir seviye mükemmellik olmaz. Bunu WaitNextTick miyde WaitOneTick miydi öyle bir node vardı. Onunla aşabilirsin ama bu kadar hızlıda gerek olmaması lazım. Bunları bir önceki madde de belirttiğim gibi incelemelisin.
4. Call Shooted fonksiyonun ne yapıyor acaba. Bir şey spawn etmediğine emin misin? Problem ordan da kaynaklanıyor olabilir.
Genel olarak BP debugging yapmalısın FireRate in herhangi bir sebeple değişik değerler bile alıyor olabilir.