Hello! I am trying to create timers dynamically in unreal engine c++, but cannot get them to work. When StartNewTimer() is called, PrintInteger() should be called after 3 seconds. However, this only works the first time StartNewTimer() is called and even though I am calling StartNewTimer() multiple times, PrintInteger is only being called once. Is there an error in how I am creating/ setting/ storing my timer handles?
//header:
TArray<FTimerHandle> TimerHandles;
//cpp:
void AMyGameMode::StartNewTimer(int32 MyInt)
{
FTimerHandle NewTimerHandle;
FTimerDelegate TimerDelegate;
TimerDelegate.BindUFunction(this, FName("PrintInteger"), MyInt);
TimerHandles.Emplace(NewTimerHandle);
GetWorld()->GetTimerManager().SetTimer(TimerHandles.Last(), TimerDelegate, 3.f, false);
return;
}
void AMyGameMode::PrintInteger(int32 MyInt)
{
UE_LOG(LogTemp, Warning, TEXT("%d"), MyInt);
}