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);