Unreal Engine FName, FText, Fstring
FName 이란
Unreal Engine에서 사용되는 데이터 타입으로 F는 Fixed를 나타내고 고정된 문자열을 다룰때 사용하며, 이름을 나타내는데에 사용을한다. 예시를 들면 새 애셋의 이름을 지을때나, 다이나믹 머테리얼 인스턴스의 파라미터를 변경할 경우, 스켈레탈 메시에서 본에 접근할 경우가 있다.
특징으로는
1. 문자열을 효율적으로 처리하는 데 초점을 둔 초경량 시스템으로, 문자열이 재사용되더라도, 데이터 테이블에 한번만 저 장이 되기에 메모리를 절약하고 성능을 향상시킬수가 있다.
2. 대소문자를 구분하지 않고, 불변성을 가지고있어 한번 생성되면 변경할 수 가 없어 안정성과 성능향상을 제공한다.
3. 정적인 속성을 가지며, 찾기나 키로 접근하는 속도가 빠르다
FName 서브시스템
FName은 서브시스템을 통해 문자열과 FName 간의 변환을 처리한다. 이 변환은 해시 테이블을 사용하여 빠르게 이루어 지기에 문자열에서 FName으로의 변환이 빠르다.
위의 여러한 특성을 지니고 있어, 대량의 데이터를 효과적으로 다루며, 성능을 최적화하고, 메모리를 효율적으로 관리할수있도록 도와주는 역할을 한다.
FText
UnrealEngine에서 FText는 모든 사용자에게 노출되는 텍스트에 대한 로컬라이제이션(Localization : 현지화)을 지원하며
예시로는
1. 로컬라이즈된 텍스트 리터럴생성
2. 텍스트 형식 지원
3. 숫자 텍스트 지원
4. 날짜 및 시간 텍스트 생성
5. 파생된 텍스트( 대문자 ㅡ> 소문자 또는 반대)생성
6. AsCultureInvariant함수로 외부 API에서 플레이어 정보를 가져와 텍스트 생성
등이 있다.
FString
FName이나 FText와 달리. FString은 조작이 가능한 유일안 스트링 클래스이다. 대소문자 변환, 부분 문자열, 역순 등 사용가능한 메서드가 많다. FString은 검색, 변경에 다른 스트링과의 비교도 가능하다 그래서 FText나 FName보다 자원을 더 소모한다.
변환 방법
정리
각각의 타입은 특정 용도에 적합하게 설계되어져 있고,
FName은 주로 리소스 식별, FText는 로컬라이제이션 및 사용자에게 보이는 인터페이스 텍스트,
FString은 가변적인 문자열 데이터에 적합하며, 상황과 요구에 따라 달라진다.