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
는 블루프린트가 컴파일된 결과물로, 블루프린트의 로직과 데이터를 포함합니다.