Language:
Discover
By Skill Level
By Category

FTimerManager::SetTimer

Choose your OS:

Syntax

void SetTimer
(
    FTimerHandle & InOutHandle,
    TFunction < void(void)> && Callback,
    float InRate,
    bool InbLoop,
    float InFirstDelay
)

Remarks

Version that takes a TFunction

Example Code

MyCharacter.cpp at line 97:

void AMyCharacter::ToggleTimer()  
{  
    UWorld* World = GetWorld();  
    if( World )  
    {  
        // If the timer has expired or does not exist, start it  
        if( ( SampleTimerHandle.IsValid() == false ) || ( bTimerExpired) )  
        {  
            World->GetTimerManager().SetTimer(SampleTimerHandle, this, &AMyCharacter::SampleTimerExpired, 10.0f);  
            bTimerExpired = false;  
        }     
        else  
        {         
            if( World->GetTimerManager().IsTimerPaused(SampleTimerHandle) == true )  
            {  
                World->GetTimerManager().UnPauseTimer(SampleTimerHandle);  
            }  
            else  
            {  
                World->GetTimerManager().PauseTimer(SampleTimerHandle);  
            }  
        }  

    }  
}  

void AMyCharacter::SampleTimerExpired()  
{  
    bTimerExpired = true;  
}  

MyCharacter.cpp at line 440:

        if (SampleTimerHandle.IsValid() == true)  
        {  
            UWorld* World = GetWorld();  
            float TimerTime = 0.0f;  
            if (World != nullptr)  
            {  
                if (bTimerExpired == true)  
                {  
                    TheHud->TimerText = FString::Printf(TEXT("Timer Has Expired"));  
                    TheHud->TimerTextColor = FColor::Red;  
                }  
                else  
                {  
                    if (World->GetTimerManager().IsTimerPaused(SampleTimerHandle) == true)  
                    {  
                        TheHud->TimerText = FString::Printf(TEXT("Current Time is %f - Timer Is Paused"), World->GetTimerManager().GetTimerRemaining(SampleTimerHandle));  
                        TheHud->TimerTextColor = FColor::Yellow;  
                    }  
                    else  
                    {  
                        TheHud->TimerText = FString::Printf(TEXT("Current Time is %f"), World->GetTimerManager().GetTimerRemaining(SampleTimerHandle));  
                        TheHud->TimerTextColor = FColor::Blue;  
                    }  
                }  
            }  
        }  
        else  
        {  
            TheHud->TimerText = TEXT("Timer Not Started");  
            TheHud->TimerTextColor = FColor::Blue;  
        }

References

Module

Engine

Header

Runtime/Engine/Public/TimerManager.h