Unreal Engine/기능 구현 / / 2025. 7. 14. 22:55

[Unreal Engine 5] FString과 FName, FText의 역할

반응형

언리얼 엔진에는 문자열 관리를 지원하는 구조체가 존재한다.

 

# FString

1. std::string과 대응되는 문자열 클래스

2. 16바이트 = TCHAR*(8) + 문자열 길이(4) + 문자열 저장에 할당된 메모리 크기(4)

3. 평소에 문자열을 사용할 때 쓰던 대로 사용하면 된다.

4. 문자를 반환하고 싶다면 역참조 연산자를 통해 TCHAR 포인터가 가리키는 원본 데이터(문자열)를 반환해서 쓴다.

 

# FName

1. 데이터 에셋, 오브젝트 이름, 태그, 소켓 등 게임 실행 중에 바뀌지 않고 반복 사용될 이름들을 관리

2. 해시 테이블 기반, 인덱스로 조회하므로 FString과 달리 비교가 빠르다.

3. 12바이트 = 인덱스 값 + 디버깅을 위한 값

4. 리소스를 가져올 때나 오브젝트나 태그를 비교할 때 문자열 비교보다 월등히 빠르다.

 

# FText

1. 디스플레이 전용, 로컬라이징 기능 제공

2. 국가별로 게임을 서비스할 때, 배포 지역에 따라 언어 변환의 편의 기능을 제공

 

 

즉, 리소스와 같이 변하지 않을 것들은 FName

그 외 일반적인 문자열 사용은 FString

대규모 프로젝트, 현지화를 염두해 둔 개발에서 문자열 사용은 FText

 

그렇다면 TEXT 매크로는 왜 쓸까?

 

#TEXT 매크로

1. 플랫폼에 따른 문자열 타입 변환 기능 지원

2. 유니코드(UTF-16)와 ANSI(UTF-8) 플랫폼 환경에 맞게 변환

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유