본문 바로가기
Unreal/Manual

Unreal C++ Class Name.Generated.h 역할

by Dev_카페인 2023. 11. 2.
반응형

[Unreal/C++] Class Name.Generated.h 역할

 

Reflection(리플렉션)이란 요약하면 프로그램의 런타임 시점에서 객체의 정보, 구조를 관리 & 수정 할 수 있게 엑세스 하는 것을 의미합니다, Java나 C# 등 에서는 리플렉션을 지원하지만 C++에서는 지원하지 않아 언리얼에서는 자체적으로 리플렉션이 구현되었습니다.

 

이것을 "언리얼 프로퍼티 시스템"이라고 하는데 메크로 함수 형태로 되어 있으며 이것을 통해 GC(Garbage Collection)나 블루프린트와 연동 등을 할 수 있습니다.

 

언리얼 엔진에서 매우 중요한 개념인 리플렉션(언리얼 프로퍼티 시스템)을 위한 헤더 파일이다. 해당 헤더가 있어야 리플렉션이 있는 유형에서 해당 클래스를 고려해야 하고 시스템 구현에 필요함을 언리얼 헤더 툴 UHT(Unreal Header Tool)에 알린다.

 

Unreal Property System (Reflection)

Reflection is the ability of a program to examine itself at runtime. This is hugely useful and is a foundational technology of the Unreal engine, powering many systems such as detail panels in the editor, serialization, garbage collection, network replicat

www.unrealengine.com

 

UnrealHeaderTool

UnrealHeaderTool (UHT) is a custom parsing and code-generation tool supporting the UObject system.

docs.unrealengine.com


소스 코드를 컴파일하기 이전에 UHT를 사용해 클래스 선언을 분석하고 언리얼 실행 환경에 필요한 부가 정보를 해당 generated.h 파일에 생성한다. 컴파일 과정에서 필연적으로 발생하는 파일이므로 코드 헤더 선언부 마지막에 generated.h 헤더를 반드시 포함해줘야 한다.

generated.h 헤더를 포함하는 것으로 UENUM(), UCLASS(), USTRUCT(), UFUNCTION(), UPROPERTY() 와 같은 키워드를 사용할 수 있게 되고, 스크립트로 관리하던 다양한 정보를 엔진 에디터에서 다룰 수 있다.

반응형