
Unreal Engine에서 UBlueprintGeneratedClass, UClass, UObject는 모두 게임 객체와 관련된 클래스 계층을 구성하며, 각기 다른 역할을 수행합니다. 이들 외에도 다양한 클래스들이 존재하며, 각각의 용도와 특성을 이해하면 언리얼 엔진에서 객체를 생성하고 다루는 데 도움이 됩니다. 이 글에서는 주요 클래스들의 차이점을 설명하고 그 관계와 특성을 비교해보겠습니다.
UObject로부터 파생됩니다.NewObject 또는 SpawnActor 함수로 인스턴스화합니다.UObject 기반 클래스는 Reflection System을 지원하며, 이는 런타임 타입 정보와 에디터에서의 편집 기능을 제공합니다.UClass는 Unreal의 클래스 메타데이터를 저장하는 클래스로, 클래스 자체에 대한 정보를 담고 있습니다. Unreal의 Reflection System을 통해 클래스의 속성과 함수를 탐색하고 조작할 수 있게 합니다.StaticLoadClass 함수로 클래스를 로드하여 타입 확인 및 객체 생성을 준비할 수 있습니다.UBlueprintGeneratedClass는 블루프린트가 컴파일되었을 때 생성되는 클래스로, 블루프린트 기반의 클래스 정의를 포함합니다. 블루프린트에서 작성된 모든 함수와 변수를 포함하여 실행 가능한 형태로 제공됩니다.UClass의 하위 클래스이며, Blueprint가 런타임에 실행될 수 있는 형태로 컴파일된 결과물입니다.Event Graph, 블루프린트 함수, 변수 등 블루프린트에서 정의된 모든 로직과 데이터를 포함하고 있어, 게임플레이 중 블루프린트 로직을 실행할 수 있습니다.StaticLoadClass로 로드한 후 스폰하여 블루프린트 기반의 객체를 생성할 수 있습니다.| 클래스 | 설명 | 주요 역할 | 사용 예 |
|---|---|---|---|
UObject | 최상위 베이스 클래스 | 모든 객체에 대한 메모리 및 기본 관리 | 데이터 관리, 상호작용 |
UClass | 클래스 메타데이터 | 클래스 타입에 대한 정보 제공 | 클래스 로드, 객체 생성 준비 |
UBlueprintGeneratedClass | 블루프린트로 생성된 클래스 | 블루프린트 로직 및 변수 포함 | 블루프린트 기반 객체 생성 및 상호작용 |
UObject는 모든 언리얼 클래스의 기초가 되는 베이스 클래스입니다.UClass는 클래스 자체에 대한 메타데이터와 타입 정보를 관리하며, StaticLoadClass로 로드됩니다.UBlueprintGeneratedClass는 블루프린트가 컴파일된 결과물로, 블루프린트의 로직과 데이터를 포함합니다.