Blog

ENGINEERING NOTE

[Unreal Engine] Unreal Header Tool (UHT)

언리얼 헤더 툴(Unreal Header Tool, UHT) 는 UObject 시스템을 지원하는 맞춤형 파싱 및 코드 생성 툴입니다. 코드 컴파일은 두 단계로 이루어집니다.언리얼 관련 클래스 메타데이터의 C++ 헤더를 파싱하고 여러 UObject 관련 기능을 구현하는

Unreal Engine

Unreal Engine Header Tool (UHT)

언리얼 헤더 툴(Unreal Header Tool, UHT) 는 UObject 시스템을 지원하는 맞춤형 파싱 및 코드 생성 툴입니다. 코드 컴파일은 두 단계로 이루어집니다.

  • 언리얼 관련 클래스 메타데이터의 C++ 헤더를 파싱하고 여러 UObject 관련 기능을 구현하는 맞춤형 코드를 생성하는 UHT가 호출됩니다.
  • 일반 C++ 컴파일러가 호출되어 결과를 컴파일합니다.

언리얼 헤더 툴 공식 문서

즉, 언리얼 프로젝트의 C++ 코드의 빌드 책임지는 툴이다.

UHT는 언리얼에서 리플렉션 시스템을 통해 생성된 다양한 UObject를 처리해주는 역할도 한다.

UHT의 역할

  • Unreal의 C++ 확장 문법(UCLASS, UPROPERTY, ...)을 파싱
  • 리플렉션 정보를 위한 코드 자동 생성 (.generated.h 파일 생성)
  • 직렬화(Serialization), 네트워킹(Replication), 블루프린트 통합(Blueprint Integration)에 필요한 코드 삽입

UHT의 동작 방식

1. UCLASS, USTRUCT, UENUM, UFUNCTION, UPROPERTY 등의 리플렉션 키워드를 파싱

2. 메타데이터 수집

3. 해당 타입에 대한 리플렉션 데이터를 .generated.h / .gen.cpp 생성

4. 컴파일러가 생성된 코드를 통해 컴파일