728x90
UE5에서 파라미터를 사용하는 타이머 함수의 예제 코드입니다:
- 파라미터를 사용하는 함수를 생성합니다.
- 파라미터를 넣을 수 있는 오브젝트 델리게이트를 생성합니다
- 타이머를 설정 및 2에서 만든 델리데이트를 전달 합니다.
다음은 간단한 예제입니다:
UCLASS()
class MYPROJECT_API AMyActor : public AActor
{
GENERATED_BODY()
public:
// 이 액터의 기본 값을 설정합니다.
AMyActor();
protected:
// 게임 시작 시 또는 스폰될 때 호출됩니다.
virtual void BeginPlay() override;
public:
// 매 프레임마다 호출됩니다.
virtual void Tick(float DeltaTime) override;
// 타이머에 의해 호출될 함수
UFUNCTION()
void MyTimerFunction(int32 MyParameter);
// 타이머를 시작하는 함수
void StartTimer();
private:
FTimerHandle TimerHandle;
};
// 기본 값을 설정합니다.
AMyActor::AMyActor()
{
// 이 액터가 매 프레임마다 Tick()을 호출하도록 설정합니다. 필요하지 않으면 성능을 위해 끌 수 있습니다.
PrimaryActorTick.bCanEverTick = true;
}
// 게임 시작 시 또는 스폰될 때 호출됩니다.
void AMyActor::BeginPlay()
{
Super::BeginPlay();
// 타이머를 시작합니다.
StartTimer();
}
// 매 프레임마다 호출됩니다.
void AMyActor::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
}
void AMyActor::MyTimerFunction(int32 MyParameter)
{
UE_LOG(LogTemp, Warning, TEXT("타이머 함수가 파라미터와 함께 호출되었습니다: %d"), MyParameter);
}
void AMyActor::StartTimer()
{
int32 MyParameter = 42; // 예제 파라미터 값
GetWorld()->GetTimerManager().SetTimer(TimerHandle, FTimerDelegate::CreateUObject(this, &AMyActor::MyTimerFunction, MyParameter), 5.0f, false);
}
이 예제에서:
- MyTimerFunction은 타이머에 의해 호출될 함수이며, int32 파라미터를 받습니다.
- StartTimer는 5초 후에 파라미터 값 42와 함께 MyTimerFunction을 호출하도록 타이머를 설정합니다.
728x90
'프로그래밍' 카테고리의 다른 글
컴포넌트의 하위(자식) 컴포넌트 찾기 in 언리얼 (0) | 2024.11.09 |
---|---|
액터 내 컴포넌트간 Collision 무시 방법 in 언리얼 (0) | 2024.11.07 |
UHierarchicalInstancedStaticMeshComponent 에서 인스턴스 제거 시 인덱스 변화 (4) | 2024.10.18 |
IsValidLowLevel과 IsValid 함수 (0) | 2024.10.02 |
Unreal Engine의 스마트 포인터 WeakObjectPtr, TSharedPtr, TObjectPtr 비교 (0) | 2024.09.26 |