C++을 사용해서 코드를 작성하다보면 Timer를 사용할 일이 많이 발생한다.
이때 단순히 몇 초 뒤에 변수의 값을 바꿔주는 간단한 작업을 할 경우에는 Lambda식을 사용하면 코드가 간결해진다.
FTimerHandle ExTimerHandle
float FuncDelay = 1.0f;
bPlayerDie = false;
GetWorldTimerManager().SetTimer(ExTimerHandle, this, &APlayerCharacter::FuncName, FuncDelay, false);
void APlayerCharacter::FuncName()
{
bPlayerDie = true;
}
위 코드는 bPlayerDie라는 bool타입 변수를 반전시키는 역할만 할 뿐인데, 이를 위해 함수 하나를 만들어두었다.
FTimerHandle ExTimerHandle;
float FuncDelay = 1.0f;
bPlayerDie = false;
FTimerDelegate PlayerDie = FTimerDelegate::CreateLambda([this]() {bPlayerDie = true; });
GetWorldTimerManager().SetTimer(ExTimerHandle, PlayerDie, FuncDelay, false);
위 코드는 맨 처음 작성한 코드와 동일한 기능을 하는 코드이다. 이처럼 Lambda식을 사용하면 함수를 따로 만들지않아도 코드 한 줄로 같은 표현이 가능하다.