본문 바로가기
공부/Unreal Engine 5

[언리얼5] 리플렉션 시스템에 사용되는 매크로 정리

by MY블로그 2024. 6. 6.

언리얼 엔진의 리플렉션 시스템에서 사용되는 주요 매크로

 

클래스(Class) 매크로

UCLASS() / 매크로는 클래스를 언리얼 객체 시스템에 등록 합니다.

MyActor.h
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"

UCLASS()
class MYPROJECT_API AMyActor : public AActor
{
    GENERATED_BODY()

public:
    AMyActor();
};

진행했던 프로젝트 에서

 

구조체(Struct) 매크로

USTRUCT() / 매크로는 구조체를 언리얼 객체 시스템에 등록합니다.

MyStruct.h
#pragma once

#include "CoreMinimal.h"
#include "MyStruct.generated.h"

USTRUCT(BlueprintType)
struct FMyStruct
{
    GENERATED_BODY()

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="My Struct")
    int32 MyInt;

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="My Struct")
    FString MyString;
};

진행했던 프로젝트 에서

속성 매크로

UPROPERTY() / 매크로는 클래스의 멤버 변수를 언리얼 속성(프로퍼티) 시스템에 등록합니다.

MyActor.h
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"

UCLASS()
class MYPROJECT_API AMyActor : public AActor
{
    GENERATED_BODY()

public:
    AMyActor();

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="My Actor")
    int32 MyProperty;
};

진행했던 프로젝트 에서

 

함수 매크로

UFUNCTION() / 매크로는 멤버 함수를 언리얼 함수 시스템에 등록합니다.

MyActor.h
#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"

UCLASS()
class MYPROJECT_API AMyActor : public AActor
{
    GENERATED_BODY()

public:
    AMyActor();

    UFUNCTION(BlueprintCallable, Category="My Actor")
    void MyFunction();
};

진행했던 프로젝트 에서

 

인터페이스 매크로

UINTERFACE() / 매크로는 인터페이스를 언리얼 객체 시스템에 등록합니다.

MyInterface.h
#pragma once

#include "UObject/Interface.h"
#include "MyInterface.generated.h"

UINTERFACE(MinimalAPI)
class UMyInterface : public UInterface
{
    GENERATED_BODY()
};

class MYPROJECT_API IMyInterface
{
    GENERATED_BODY()

public:
    virtual void MyInterfaceFunction() = 0;
};

진행했던 프로젝트 에서

 

열거형 매크로

UENUM() / 매크로는 열거형을 리플렉션 시스템에 등록합니다.

MyEnum.h
#pragma once

#include "CoreMinimal.h"
#include "MyEnum.generated.h"

UENUM(BlueprintType)
enum class EMyEnum : uint8
{
    OptionOne UMETA(DisplayName = "Option One"),
    OptionTwo UMETA(DisplayName = "Option Two"),
    OptionThree UMETA(DisplayName = "Option Three")
};

진행했던 프로젝트 에서

 

각 매크로들의 멤버목록은 메크로헤더파일 에서 확인합니다.

댓글