UE_5 리플렉션 시스템

김재혁·2025년 1월 21일
0

개념

  • 코드에서 객체의 속성과 메서드에 대한 메타데이터를 추출하거나 수정할 수 있음.
  • 속성 검사, 속성 직렬화, 객체 탐색 등을 처리하는데 사용.
  • C++ 클래스에 있는 여러 맴버(변수, 함수 등)를 "반사"해, 에디터와 블루프린트에서 직접 설정, 호출이 가능하도록 함.

#include "Item.generated.h"

  • 언리얼 엔진이 자동 생성하는 헤더 파일로, 클래스의 리플렉션 및 엔진 통합에 필요한 코드가 들어가 있음.
  • 코드와 에디터의 상호작용을 지원.
  • 반드시 헤더 파일의 마지막 #include 구문 아래에 위치해야 함.

UObject와 UClass

  • 언리얼 엔진에서 모든 객체는 기본적으로 UObject 클래스를 상속함. UObject는 리플렉션 시스템의 핵심 클래스로써, 엔진의 많은 기능이 UObject 기반의 객체들에 대해 수행됨.
  • UClass : 특정 객체의 클래스 정보를 담고 있는 객체.
  • 주요 지정자 : 옵션을 주지 않으면 블루프린트에서 상속이 가능하고 변수로 참조 가능한 상태로 등록.
  • UObject : 런타임 객체로, 엔진의 리플렉션 시스템에서 인스턴스화된 객체를 표현.

주요 옵션 비교표

GENERATED_BODY()

  • 언리얼 코드 생성 도구가 사용하느 코드를 사용하는 역할.
  • 클래스 내부의 필요한 리플렉션 정보를 자동으로 생성해줌.

UPROPERTY와 UFUNCTION

  • UPROPERTY : 변수나 속성을 리플렉션 시스템에 등록하여, 에디터와 블루프린트에서 이 속성에 접근할 수 있도록 해주는 매크로로써, 다양한 옵션을 통해 속성의 가시성, 수정 가능 여부, 카테고리 등을 제어할 수 있음.

UPROPERTY 주요 지정자

  • UFUNCTION : 함수를 블루프린트에서 호출하거나 사용할 수 있도록 해주는 매크로로써, 함수가 블루프린트에서 호출 가능한지, 네트워크에서 호출될 수 있는지 등을 설정할 수 있는 함수에 대한 메타 데이터를 제공.

UFUNCTION 주요 지정자

필요에 따라 지정자들을 조합해 명시할 수 있음.

0개의 댓글