UE5 - 리플렉션

haura·2025년 1월 20일

UE5

목록 보기
7/21

1. 리플렉션(Reflection)

  • c++ 클래스 내의 변수 및 함수 정보를 엔진 내부의 메타데이터 형태로 저장하고 이를 에디터나 블루프린트에서 활용할 수 있게 만들어주는 기술
#pragma once

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

UCLASS()
class SPARTAPROJECT_API AItem : public AActor
{
		GENERATED_BODY()
	
public:	
		AItem();
	
protected:
		USceneComponent* SceneRoot;
		UStaticMeshComponent* StaticMeshComp;
	
		float RotationSpeed;
	
		virtual void BeginPlay() override;
		virtual void Tick(float DeltaTime) override;
};
  • Item.generated.h : 자동으로 생성되는 헤더파일로 클래스의 리플렉션 및 엔진 통합에 필요한 코드가 들어 있음.
  • UCLASS() : 해당 클래스를 언리얼 엔진의 리플렉션 시스템에 등록한다는 의미
  • GENERATED_bODY() : 클래스 내부에 필요한 리플렉션 정보를 자동으로 생성

2. UCLASS() 매크로 주요 지정자

  • Blueprintintable : 상속가능한 클래스로 만든다.
  • NotBlueprintable : 클래스를 상속할 수 없도록 한다.
  • BlueprintType : 변수나 참조로 사용할 수 있게 한다.

3. UPROPERTY() 매크로 주요 지정자

1) 편집 가능 범위 지정자

  • VisibleAnywhere: 읽기전용, 수정 불가능
  • EditAnywhere : 클래스 기본값
  • EditDefaultOnly : 클래스 기본값에서만 수정 가능
  • EditInstanceOnly : 인스턴스에서만 수정가능
    2) 블루프린트 접근지정자
  • BlueprintReadWrite : 블루프린트 내에서 Get/Set으로 값을 읽거나 쓸 수 있음
  • BlueprintReadOnly : Get핀만 노출되어 읽기만 가능
    3) Category 지정자
  • Details 패널에서 Rotation범주(폴더)아래에 표시됨
    4) 메타 옵션 지정자
  • meta(ClampMin="0.0") : 에디터에서 변수 입력시 최소값을 제한할 수 있다.
    -meta=(AllowPrivateAccess="true") : 해당 멤버가 private이여도 에디터나 블루프린트에서 접근 허용
    5) 추가 지정자가 없는 경우
  • 리플렉션에는 등록되지만 에디터나 블루프린트에는 노출 x

0개의 댓글