본문 바로가기
[ Unreal5 ]/- 언리얼엔진5 실습

언리얼엔진5 일정 시간 후 호출함수(람다 함수)

by MRG 2024. 12. 20.
728x90
반응형

 

▣ FTimerHandle HitSoundDelayHandle
타이머 핸들(Handle):
이 변수는 타이머를 식별하는 데 사용됩니다.
특정 타이머를 관리하거나 중지(ClearTimer)하기 위해 필요합니다.
FTimerHandle은 FTimerManager와 함께 작동하며, 타이머 설정, 실행, 삭제 등을 처리합니다.


▣ GetWorld()->GetTimerManager()
타이머 매니저(Timer Manager):
GetTimerManager()는 타이머를 관리하는 클래스인 FTimerManager에 접근하는 함수입니다.
이를 통해 타이머를 생성, 시작, 정지, 리셋할 수 있습니다.
GetWorld() 함수는 현재 월드의 포인터를 반환하며, 이를 통해 타이머 매니저를 사용할 수 있습니다.

▣ SetTimer 함수
SetTimer는 지정된 시간 후에 특정 함수가 호출되도록 설정합니다.

매개변수 설명:
FTimerHandle& InOutHandle:
타이머를 식별하는 핸들. 타이머를 관리하거나 취소할 때 사용됩니다.
UObject* Object:
함수가 실행될 객체. 여기서는 this가 전달되어 AZombieBase 클래스의 멤버 함수가 실행됩니다.
FunctionPtr Function:
호출할 함수의 포인터. &AZombieBase::PlayHitSound로 지정되었습니다.
float Time:
타이머가 트리거되기까지 기다릴 시간(초 단위). 여기서는 0.1초로 설정되었습니다.
bool bLoop:
true면 함수가 반복 실행되고, false면 한 번만 실행됩니다.

 

 

▣ 람다 함수란?
람다(Lambda)는 간단한 함수를 선언 없이 즉석에서 만드는 방식입니다.

 

▣ 람다 설명

[캡처](매개변수) -> 반환형 {
    실행 코드
};

 

[] → 캡처 리스트 (외부 변수 가져올지 말지)

() → 매개변수 자리 (파라미터 입력 가능)

{} → 실행할 코드 블럭

 

예시의미

[Zombie] Zombie 변수만 캡처
[&] 모든 외부 변수를 참조(reference)로 캡처
[=] 모든 외부 변수를 값(value)으로 캡처

 

 

▣ 만약 매개변수를 받는다면?
예를 들어, 값을 받아서 로그를 찍고 싶다면:

[ ](int Value) {
    UE_LOG(LogTemp, Warning, TEXT("값: %d"), Value);
};

 

 

▣ 기호의미

[] 외부 변수 캡처 (람다 안에서 사용할 외부 변수)
() 함수의 매개변수 자리 (지금은 아무 것도 안 받으므로 비어있음)
{} 실행할 코드 블럭

 

728x90
반응형

댓글