데이터 타입


언리얼 엔진은 블루프린트와 C++에서 다양한 데이터 타입을 제공한다. C++ 네이티브 타입과 함께 언리얼의 주요 데이터 타입을 활용하여 게임 개발에 필요한 데이터를 효율적으로 저장하고 처리할 수 있다.

아래 표에서 주요 데이터 타입과 그 특징들을 살펴볼 수 있다.

데이터 타입 설명
부울(Boolean) True/False 값만 가지는 논리형 타입. 조건문이나 상태 체크에 사용한다.
바이트(Byte) 0~255 범위의 작은 정수. 메모리 효율적이며 작은 수치 데이터에 적합하다.
인티저(Integer) -2,147,483,648 ~ 2,147,483,647 범위의 일반 정수. 게임 내 점수나 레벨 등에 스탯에 사용한다.
인티저64(Integer64) -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 범위의 확장된 정수형
플로트(Float) 소수점이 있는 실수형. ±3.4E+38 범위의 값을 7자리 정밀도로 표현한다.
이름(Name) 엔진 내부에서 사용되는 최적화된 불변 문자열. 에셋 이름이나 태그에 활용한다.
스트링(String) 일반적인 가변 문자열. 플레이어 이름이나 채팅 등 수정 가능한 텍스트에 사용한다.
텍스트(Text) 지역화(Localization)가 필요한 문자열. 게임 내 UI나 퀘스트 설명 등에 사용한다.
벡터(Vector) 3개의 수(X, Y, Z)로 구성된 집합. 3D 좌표나 RGB 색상 데이터에 사용한다.
회전자(Rotator) 3D 공간에서의 회전을 정의하는 숫자 그룹. 오브젝트의 방향을 표현할 때 사용한다.
트랜스폼(Transform) 이동(3D 위치), 회전, 크기를 결합한 데이터 집합. 오브젝트의 전체적인 변형 정보를 저장한다.
오브젝트(Object) 조명, 액터, 스태틱메시, 카메라, 사운드큐 등과 같은 블루프린트 객체들을 표현한다.

외전 : Name, Text, String


언리얼 엔진에서는 문자열을 다루기 위한 세 가지 주요 데이터 타입(Name, Text, String)을 제공하는데, 언뜻 보기에는 비슷해 보이지만 각각의 용도와 특성이 다르다.

이제 각 타입의 특징과 차이점을 자세히 살펴보면서, 왜 이렇게 구분되어 있는지 이해해보도록 하자.

FName

FName은 효율적인 문자열 처리를 위한 경량화된 타입이다.

FText

FText는 언리얼 엔진의 텍스트 현지화를 담당하는 핵심 데이터 타입이다.

FString

FString은 FName과 FText와 다르게 검색, 수정, 문자열 비교가 가능하지만 더 많은 비용이 발생할 수 있다.

FName FText FString
주요 용도 식별자, 태그, 에셋 이름 현지화가 필요한 텍스트, UI 표시 일반적인 문자열 처리, 임시 텍스트
수정 불변(Immutable) 불변(Immutable) 가변(Mutable)
메모리 효율성 매우 높음 중간 낮음
비교 연산 매우 빠름 빠름 느림
현지화 지원 지원 안 함 완벽 지원 지원 안 함
대소문자 구분 구분 안 함 구분함 구분함
저장 방식 인덱스 참조 인덱스 참조 직접 문자열 저장