- 순서
- TSubclassOf란?
- TSubclassOf 특
- TSubclassOf의 장단점
- TSubclassOf란?
- UE에서 클래스 타입을 안전하게 다루기 위한 템플릿 스마트 포인터
- TSubclassOf<T>는 T타입을 상속한 클래스의 UClass 포인터만 가질 수 있는 템플릿 클래스이다. => 즉, 특정 부모 클래스의 서브클래스만 지정 가능하게 만들어줌.
- 내부적으로 UClass*를 담고 있지만, 타입 체크가 컴파일/런타임에서 안전하게 이루어짐
- TSubclassOf 특징
- 타입 안전
- 특정 클래스 또는 특정 클래스의 서브클래스만 할당 가능함
- 잘못된 타입을 할당하려고 하면 컴파일 에러 또는 런타임 체크 실패할 수 있음
- UClass 포인터 기반
- 내부적으로는 UClass*를 가지고 있음
- 필요시 .Get()으로 UClass*를 가져올 수 있음
- 블루프린트 연동 가능
- 에디터에서 클래스 선택 드롭다운으로 편리하게 서브클래스 지정 가능함.
- 타입 안전
- TSubclassOf의 장단점
- 장점
- 타입의 안전성을 보장함
- 블루프린트에서 연동 가능함
- 런타임 체크가 용이함: 내부가 UClass*이므로 .Get()으로 UClass 포인터를 사용 가능하며, IsChildOf()같은 함수로 안전하게 서브클래스 확인이 가능함
- 코드 가독성/안정성 향상: UClass*를 사용하면 어떤 클래스든 들어갈 수 있어 에러 가능성이 높지만 TSubclassOf을 사용 시 타입의 의도가 명확해짐
- 단점
- 추가적인 제약
- 부모 클래스 제한 때문에 모든 클래스 타입을 자유롭게 담을 수 없음.
- 타입 체크를 유연하게 하고 싶은 경우에는 UClass*가 더 자유로움.
- 템플릿 사용
- C++ 템플릿이므로 가끔 코드 복잡성이 증가할 수 있음. 함수 매개변수로 사용 시 템플릿 명시가 필요함
- UClass 포인터와 달리 간접 참조
- 내부가 UClass*지만, 접근하려면 .Get()필요하여 약간의 문법적 오버헤드가 존재함
- 추가적인 제약
- 장점
- 사용 예
- 스폰 클래스 지정
- 블루프린트 에디터에서 클래스 선택
- 런타임 서브클래스 체크
'Unreal Engine' 카테고리의 다른 글
| [UE] UE의 string 클래스 (1) | 2025.08.29 |
|---|---|
| [UE] 유효성 검사 (0) | 2025.08.29 |
| [UE]StaticClass와 GetClass (0) | 2025.08.29 |
| [UE] 언리얼 빌드 툴/헤더 툴 (0) | 2025.08.29 |
| [UE]스마트 포인터 (0) | 2025.08.29 |