Unreal Engine/C++
[Unreal Engine 4 C++] SetTimer를 활용한 Delay구현
한돌이
2022. 12. 8. 01:10
블루프린트에서 사용하는 Delay 노드를 C++에서 SetTimer를 활용하여 구현하겠습니다.
SetTimer를 활용하여 Delay를 구현하는 2 가지 방법이 있습니다. Lambda를 사용하는 방법과 딜레이 후 함수를 호출하는 방법입니다.
1. Lambda 사용
float DelayTime; // 딜레이 시간
FTimerHandle TimerHandle;
GetWorld()->GetTimerManager().SetTimer(TimerHandle, FTimerDelegate::CreateLambda([&]()
{
// 딜레이 후 동작 구현
}), DelayTime, false);
2. 딜레이 후 함수 호출
- 함수에 매개변수가 있는 경우
float DelayTime; // 딜레이 시간
FTimerHandle TimerHandle;
FTimerDelegate TimerDelegate = FTimerDelegate::CreateUObject(this, &Class::FunctionName, Args...);
GetWorld()->GetTimerManager().SetTimer(TimerHandle, TimerDelegate, DelayTime, false);
- 함수에 매개변수가 없는 경우
float DelayTime; // 딜레이 시간
FTimerHandle TimerHandle;
GetWorld()->GetTimerManager().SetTimer(TimerHandle, this, &Class::FunctionName, DelayTime, false);