언리얼 엔진에서는 T와 F 같은 접두어를 통해 특정한 유형의 클래스나 자료 구조를 구분한다. 이는 에픽 게임즈의 코딩 스타일 가이드에 따른 명명 규칙이며, 각 접두어는 특정 목적을 가진 클래스 그룹을 나타낸다.
T 접두어는 주로 템플릿 기반 클래스에 사용된다. 언리얼 엔진에서는 다양한 컨테이너 클래스를 템플릿 형태로 제공하며, T 접두어를 붙여 이러한 템플릿 클래스임을 나타내는 것이다.
| 클래스 | 설명 | 예시 |
|---|---|---|
TArray | 동적 배열 (Dynamic Array) | TArray<int32> MyArray; |
TMap | 키-값 쌍을 저장하는 해시맵 (Map) | TMap<FString, int32> MyMap; |
TSet | 중복을 허용하지 않는 집합 (Set) | TSet<FName> MySet; |
TWeakObjectPtr | 약한 참조 포인터 (Weak Pointer) | TWeakObjectPtr<UObject> Ptr; |
TSharedPtr | 공유 포인터 (Shared Pointer) | TSharedPtr<MyClass> Ptr; |
TUniquePtr | 고유 포인터 (Unique Pointer) | TUniquePtr<MyClass> Ptr; |
TArray
TArray<FString> Names;
Names.Add("Player1");
Names.Add("Player2");
TMap
TMap<FString, int32> Scores;
Scores.Add("Player1", 100);
Scores.Add("Player2", 200);
F 접두어는 언리얼 엔진에서 제공하는 기본 클래스 또는 구조체에 사용된다. 이러한 클래스나 구조체는 언리얼 엔진의 핵심 기능을 제공하며, 주로 수학적 연산, 3D 벡터, 로테이션, 트랜스폼 등을 다룬다.
| 클래스 | 설명 | 예시 |
|---|---|---|
FVector | 3D 벡터 클래스 (Vector) | FVector Location; |
FRotator | 회전 값을 나타내는 클래스 (Rotator) | FRotator Rotation; |
FTransform | 위치, 회전, 스케일을 포함하는 클래스 | FTransform Transform; |
FString | 문자열 클래스 | FString Name = "Player"; |
FName | 이름을 나타내는 클래스 | FName PlayerName; |
FColor | 색상을 나타내는 클래스 | FColor Red = FColor::Red; |
FVector
FVector Location(100.0f, 200.0f, 300.0f);
Location += FVector(10.0f, 0.0f, 0.0f); // X축으로 10만큼 이동
FRotator
FRotator Rotation(0.0f, 90.0f, 0.0f); // Yaw(좌우 회전) 90도
FTransform
FTransform Transform;
Transform.SetLocation(FVector(100.0f, 200.0f, 300.0f));
Transform.SetRotation(FQuat(FRotator(0.0f, 90.0f, 0.0f)));
U 접두어는 언리얼 엔진에서 UObject를 상속받는 모든 클래스에 붙는다. 이러한 클래스들은 엔진의 객체 관리 시스템에 의해 관리되며, 가비지 컬렉션, 리플렉션 시스템 등을 지원한다.
| 클래스 | 설명 | 예시 |
|---|---|---|
UObject | 모든 UObject 기반 클래스의 부모 클래스 | UObject* MyObject; |
UActorComponent | 액터에 부착 가능한 컴포넌트 클래스 | UActorComponent* Component; |
UUserWidget | UI 위젯 클래스 | UUserWidget* Widget; |
UStaticMesh | 정적 메쉬 클래스 | UStaticMesh* Mesh; |
T 접두어 : 템플릿 클래스를 나타내며, 주로 컨테이너(배열, 맵, 셋) 및 스마트 포인터에 사용된다.F 접두어 : 언리얼 엔진의 핵심 클래스 및 구조체(3D 벡터, 로테이터, 트랜스폼, 문자열 등)에 사용된다.U 접두어 : UObject를 상속받는 클래스에 사용되며, 언리얼 엔진의 객체 관리 및 리플렉션 시스템과 연관된 클래스들이다.