TSubclassOf<T>란?
- 언리얼 엔진에서 특정 클래스의 서브 클래스를 안전하게 참조할 수 있도록 도와주는 템플릿 클래스이다.
- 언리얼 엔진에서 UObject 또는 AActor 기반 클래스를 다룰 때, 특정 클래스의 하위 클래스(서브 클래스)만을 저장할 수 있는 변수를 만들 때 사용된다.
하드 레퍼런스
- 클래스가 항상 메모리에 로드된 상태에서 바로 접근한다.
왜 필요한가?
- 일반적인 UClass* 포인터를 사용하면 모든 UObject 타입을 받을 수 있어 타입 안전성이 떨어진다.
- TSubclassOf는 UClass*로 변환될 수 있어, 언리얼 엔진의 클래스 시스템과 자연스럽게 통합된다.
사용법
TSubclassOf<AActor> ActorClass;
- ActorClass 변수에는 AActor를 상속한 클래스만 저장 가능
TSoftClassPtr란?
- 언리얼 엔진에서 특정 클래스의 서브 클래스를 참조할 수 있도록 하는 스마트 포인터이다.
- 일반적인 TSubclassOf<T>와 달리, 소프트 클래스 레퍼런스를 사용하여 메모리를 효율적으로 관리할 수 있다.
소프트 레퍼런스
- 클래스의 경로만 유지한다.
- 클래스가 필요한 상황이 왔을 때, 그때 메모리에 로드.
TSubclassOf vs TSoftClassPtr
비교 항목 | TSubclassOf<T> | TSoftClassPtr<T> |
타입 제한 | 특정 클래스를 상속한 서브 클래스만 저장 가능 | |
로드 방식 | 하드 레퍼런스 (즉시 로드) | 소프트 레퍼런스 (필요할 때만 로드) |
메모리 관리 | 즉시 메모리에 로드됨 | 필요할 때만 메모리에 로드됨 (Lazy Load) |
블루프린트 지원 | 지원 | |
패키지 의존성 | 강한 의존성 | 약한 의존성 |
리소스 로딩 | 게임 시작 시 즉시 로드됨 | 필요할 때 로드되므로 성능 최적화 가능 |
'Unreal' 카테고리의 다른 글
액션 바인딩 추가 및 캐릭터 동작 구현 (0) | 2025.02.12 |
---|---|
Enhanced Input System의 이해 및 Input Action 설정하기 (0) | 2025.02.12 |
Player Controller (0) | 2025.02.12 |
Pawn과 Character 클래스 이해하기 (0) | 2025.02.06 |
GameMode 이해하기 (0) | 2025.02.06 |