-
[Unreal Engine] SetTimer() : Passing parametersUnreal Engine 5._ 2023. 2. 24. 20:57
이전 글 (SetTimer() : C++ & Blueprint)에서 SetTimer에 대해 알아보았습니다.
특정 함수를 호출할 때, 반복 여부와 시간 간격을 자유롭게 지정할 수 있는 것이 큰 특징이었습니다.
이번 글에서는 SetTimer함수를 사용할 때, 호출되는 함수에 값을 전달하는 방법을 살펴보도록 하겠습니다.
SetTimer의 오버로드 중 FTimerDelegate를 사용하는 함수가 있었습니다.
해당 버전의 함수는 FTimerDelegate 객체가 호출될 함수의 정보를 가지고 있습니다.
여기서 FTimerDelegate가 가질 수 있는 정보 중에는 호출될 함수에 전달될 파라미터도 포함됩니다.
코드를 통해 표현하면 아래와 같습니다.
// Way 1 FTimerDelegate Del1 = FTimerDelegate::CreateUObject( this, &AMyActor::FunctionWithParam, Param1, Param2 ); // Way 2 FTimerDelegate Del2 = FTimerDelegate::CreateUFunction( this, FName("FunctionWithParam"), Param1, Param2 );
위 코드와 같이 FTimerDelegate의 SimpleDelegate를 반환하는 Static 함수를 사용하는 방법과
아래 코드와 같이 FTimerDelegate인스턴스의 Bind함수를 이용하는 방법이 있습니다.
// Way 3 FTimerDelegate Del3; Del3.BindUObject( this, &AMyActor::FunctionWithParam Param1, Param2 ); // Way 4 FTimerDelegate Del4; Del4.BindUFunction( this, FName("FunctionWithParam"), Param1, Param2 );
위 4가지 방법 외에도, FTimerDelegate에는 Delegate를 설정하는 여러 함수가 있습니다.
상황에 맞게 적절한 함수를 사용하는 것이 좋겠습니다.
언리얼 엔진 공식 문서에 함수들의 서명이 있어 공유합니다.
TDelegate | Unreal Engine Documentation
감사합니다.
'Unreal Engine 5._' 카테고리의 다른 글
[Unreal Engine] Line trace (0) 2023.04.28 [Unreal Engine] Control game speed (Time Dilation) (0) 2023.04.06 [Unreal Engine] IsA : Object type check in C++ (0) 2023.02.17 [Unreal Engine] UFUNCTION override (BlueprintNativeEvent) (0) 2023.02.07 [Unreal Engine] UFUNCTION UPARAM : Rename, Relocate params (0) 2023.01.31