[UE5] 언리얼엔진 클래스 접두사

이진혁·2025년 3월 5일
0

언리얼 공부정리

목록 보기
5/6

Unreal Engine 5_5 버전을 기준으로 작성되었습니다.

언리얼에서 파생 클래스 생성 시 클래스명 앞에 붙는 접두사에 대해 정리한 문서입니다.

E(Enum)와 S(SWidget)접두사처럼 강제적이지않은 프로젝트에서 관례적으로 쓰는 접두사는 제외했습니다.


참조링크

공식문서 : 언리얼 코딩 표준

언리얼 컨테이너 라이브러리에 대한 설명


U->UObject

U 접두사는 UObject를 상속받는 모든 클래스를 의미합니다. UObject는 언리얼의 최상위 기본 클래스 중 하나로 언리얼 엔진의 오브젝트는 UObject 또는 그 파생 클래스를 상속받아 생성됩니다.
월드에 배치되지 않으며 데이터 저장과 연산을 담당하는 객체에 사용되기 때문에 위치정보를 가지지 않습니다.

특징

  • UObject는 게임 월드에 배치되지 않음
  • 가비지 컬렉션(Garbage Collection, GC)에 관리됨
  • 언리얼의 가비지 컬렉션은 UObejct기반 클래스를 관리함
  • 변수를 자동으로 Serialization 해줌
  • 네트워크 리플리케이션을 제공함

A->AActor

A 접두사는 월드에 배치(Spawn)될 수 있는 객체, 즉 액터를 의미합니다. AActor가 UObject를 상속받지만 AActor를 상속받는 오브젝트는 A를 붙여줍니다.
게임 내에서 트랜스폼(Transform)을 가지며, 물리 및 충돌 시스템과 상호작용 가능합니다. 네트워크 리플리케이션을 지원합니다.

특징

  • UObject를 상속받기 때문에 UObject의 특징을 기본적으로 가짐
  • AActor는 월드에 배치될 수 있음.
  • BeginPlay(), Tick(), OnDestroy() 같은 액터 라이프사이클을 가짐.
  • SpawnActor()를 통해 런타임에 동적으로 생성 가능.

T → TTemplate

T 접두사는 언리얼 템플릿 클래스를 의미합니다. 언리얼에서 제공하는 메모리 관리 및 최적화에 특화된 자료구조(컨테이너, 스마트 포인터 등)에 사용됩니다.

특징

  • 가비지컬렉션에 관리되지 않음
  • C++의 일반적인 메모리 관리 방식을 따름
  • 네트워크 리플리케이션을 제공하지않음
  • 언리얼 엔진의 메모리 관리 및 최적화에 맞춘 데이터 구조 제공

F -> 구조체 or 일반 클래스

F 접두사는 UObject를 상속받지 않는 일반적인 C++ 클래스를 의미합니다. 템플릿 클래스를 활용하지만 데이터 타입이 고정되어 있는 FVector, FRotator, FTransform 같은 클래스도 F 접두사를 가집니다.

특징

  • UObject보다 가볍고 빠르며, 값 타입으로 저장됨
  • Garbage Collection을 지원하지 않음
  • USTRUCT() 매크로를 사용하면 블루프린트에서 활용 가능

I -> Interface

I 접두사는 인터페이스(Interface) 클래스를 의미합니다. 인터페이스 클래스는 선언만 포함하고 직접 구현을 가지지 않는 클래스로 C++의 다중 상속을 위해 사용됩니다.

특징

  • U 접두사가 붙은 클래스와 I접두사가 붙은 클래스로 구현됨
  • U접두사가 붙은 클래스는 언리얼 엔진의 객체 시스템과 호환되기 위해 사용되며, 실질적인 기능을 I접두사가 붙은 클래스에서 구현함
  • 블루프린트에서도 인터페이스를 구현할 수 있음

0개의 댓글

관련 채용 정보