FName
콘텐츠 브라우저 에서 새 에셋 이름을 지을 때, 다이내믹 머티리얼 인스턴스의 파라미터를 변경할 때, 스켈레탈 메시에서 본에 접근할 때, 모두 FName 을 사용합니다. FName 은 문자열 사용에 있어서 초경량 시스템을 제공하는데, 주어진 문자열이 재사용된다 해도 데이터 테이블에 한 번만 저장되는 것입니다. FName 은 대소문자를 구분하지 않습니다. 변경도 불가능하여, 조작할 수 없습니다. 이처럼 FName 의 정적인 속성과 저장 시스템 덕에 찾기나 키로 FName 에 접근하는 속도가 빠릅니다. FName 서브시스템의 또다른 특징은 스트링에서 FName 변환이 해시 테이블을 사용해서 빠르다는 점입니다.
FText
언리얼 엔진(UE) 에서 텍스트 현지화를 위한 주요 컴포넌트는 FText
클래스입니다. 이 클래스는 다음 기능을 제공하여 텍스트 현지화를 지원하므로 모든 사용자 대상 텍스트는 이 클래스를 사용해야 합니다.
FText
에는 현지화되지 않거나 '컬처 무관' 텍스트를 생성하는 AsCultureInvariant
함수(또는 INVTEXT
매크로)도 있습니다. 이는 외부 API의 플레이어 이름을 사용자 인터페이스에 표시할 수 있는 이름으로 변환하는 것과 같은 작업에 유용합니다.
FText::GetEmpty()
를 사용하거나 FText()
만 사용하여 빈 FText
를 만들 수 있습니다.
FString
FName
이나 FText
와는 달리, FString
은 조작이 가능한 유일한 스트링 클래스입니다. 대소문자 변환, 부분문자열 발췌, 역순 등 사용가능한 메서드는 많습니다.
FString 은 검색, 변경에 다른 스트링과의 비교도 가능합니다. 그러나 바로 그것이 FString 이 다른 불변의 스트링 클래스보다 비싸지는 이유입니다.
Printf
FString
함수 Printf
는 C++ printf
함수와 같은 포맷 실행인자 지정자로 FString
오브젝트를 생성할 수 있습니다. 마찬가지로 UE_LOG
매크로는 실행 중인 UE4 빌드 타입에 따라 printf
포맷의 문자열을 화면, 로그 출력, 로그 파일에 출력합니다.
이러한 문자열과 변환을 사용하려면 필요한 헤더 파일을 포함해야 한다는 점을 명심하세요. 필요한 헤더 파일 목록은 각 문자열에 대한 API 레퍼런스 페이지에 있습니다.
변환
|원본 | 대상 | 예시 | |---|------|---------|%fnametofstring% %fnametoftext% %fstringtofname% %fstringtoftext% %ftexttofstring% %ftexttofname% %fstringtoint32% %fstringtofloat% %int32tofstring% %floattofstring%
인코딩
일반적으로 문자열 변수 리터럴을 설정할 때는 TEXT() 매크로를 사용해야 합니다. TEXT() 매크로를 지정하지 않으면 리터럴은 지원되는 문자가 매우 제한되는 ANSI를 사용하여 인코딩됩니다. FString에 전달되는 모든 ANSI 리터럴은 TCHAR(네이티브 유니코드 인코딩)로 변환해야 하므로 TEXT()를 사용하는 것이 더 효율적입니다.
인코딩에 대한 자세한 정보는 캐릭터 인코딩 문서를 참조하세요.