언리얼 엔진의 리플렉션 시스템에서 사용되는 주요 매크로
클래스(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")
};
각 매크로들의 멤버목록은 메크로헤더파일 에서 확인합니다.
'공부 > Unreal Engine 5' 카테고리의 다른 글
[언리얼5] CPP 프로젝트에서 자주 사용되는 컴포넌트 정리 (0) | 2024.06.10 |
---|---|
[언리얼5] 언리얼 CPP 연산자 오버로딩 (0) | 2024.06.05 |
[언리얼5] 식물 물리적용 참고자료 (4) | 2024.06.04 |
[언리얼5] .generated.h 에 대하여 (1) | 2024.06.04 |
[언리얼5] 언리얼 CPP 인벤토리시스템 참고 자료 (0) | 2024.06.03 |
댓글