Unreal Engine

[UE]StaticClass와 GetClass

programmer-faust 2025. 8. 29. 03:31
  • 순서
    1. UClass란?
    2. StaticClass란?
    3. GetClass란?
    4. 블루프린트와의 관계
    5. StaticClass와 GetClass의 차이
  • UClass란?
    1. 언리얼 엔진에서 클래스에 대한 메타데이터와 리플렉션 정보를 담고 있는 객체
    2. 즉, C++ 클래스의 타입 정보를 언리얼 런타임에서 다룰 수 있게 해주는 구조체 같은 것
  •  StaticClass란?
    1. 언리얼 빌드 과정(UHT)이 각 UClass에 대해 자동으로 생성하는 정적 함수로 해당 클레스의 UClass* 메타 객체를 반환함
    2. UHT가 각 UClass()에 대해 자동으로 생성함
    3. C++ 클래스의 UClass*를 반환함
    4. 인스턴스 없이도 클래스 타입을 가리킬 수 있어 객체가 불필요함
  • GetClass란?
    1. UObject의 인스턴스 메서드로, 현재 오브젝트가 어떤 클래스 타입인지 반환함.
    2. UObject의 멤버 함수로 선언하여 사용함.
    3. 해당 객체가 실제로 속한 UClass*를 반환함
    4. 객체 인스턴스가 있어야 호출 가능함.
  • 블루프린트와의 관계
    1. 블루프린트로 만든 서브클래스가 있다면.
    2. SomeBPInstance->GetClass()는 서브클래스의 UClass*를 반환
    3. StaticClass()는 C++ 클래스의 UClass*를 반환
    4. GetClass() == StaticClass() 비교는 블루프린트 서브클래스가 있으면 false가 될 수 있음
    5. 상속을 허용하여 검사하려면 IsA/Cast를 사용해야함.
  • StaticClass와 GetClass의 차이
항목 GetClass() StaticClass()
호출 방식 인스턴스 멤버 정적 멤
객체 필요 여부 필요 불필요
반환 값 해당 인스턴스의 런타임 UClass* 정적 선언된 클래스의 UClass*
블루프린트 서브클래스와 비교 시 BP 서브클래스의 UClass 반환 C++ 원본 클래스의 UClass 반환
사용 예 런타임 타입 조회 스폰, 비교, TSubclassOf 등

'Unreal Engine' 카테고리의 다른 글

[UE] 유효성 검사  (0) 2025.08.29
[UE]TSubclassOf  (1) 2025.08.29
[UE] 언리얼 빌드 툴/헤더 툴  (0) 2025.08.29
[UE]스마트 포인터  (0) 2025.08.29
[UE] 언리얼 엔진의 GC  (1) 2025.08.28