반응형
언리얼 엔진에는 문자열 관리를 지원하는 구조체가 존재한다.
# 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) 플랫폼 환경에 맞게 변환
반응형
'Unreal Engine > 기능 구현' 카테고리의 다른 글
| [Unreal Engine 5] Pawn과 PlayerController의 관계 (0) | 2025.07.23 |
|---|---|
| [Unreal Engine 5] 토큰 저장 : LocalPlayerSubsystem (0) | 2025.07.21 |
| [Unreal Engine 5] IDE 변경하기(Visual Studio → Rider) (0) | 2025.07.06 |
| [Unreal Engine 5] Unreal Engine Source Code로 버전 설정하기 (0) | 2025.07.06 |
| [Unreal Engine 5] Github Unreal Engine 소스 코드 다운로드 (0) | 2025.07.06 |
