FName
콘텐츠 브라우저에서 새 애셋 이름을 지을 때, 다이내믹 머티리얼 인스턴스의 파라미터를 변경할 때, 스켈레탈 메시에서 본에 접근할 때, 모두 FName 을 사용합니다. FName 은 문자열 사용에 있어서 초경량 시스템을 제공하는데, 주어진 문자열이 재사용된다 해도 데이터 테이블에 한 번만 저장되는 것입니다. FName 은 대소문자를 구분하지 않습니다. 변경도 불가능하여, 조작할 수 없습니다. 이처럼 FName 의 정적인 속성과 저장 시스템 덕에 찾기나 키로 FName 에 접근하는 속도가 빠릅니다. FName 서브시스템의 또다른 특징은 스트링에서 FName 변환이 해시 테이블을 사용해서 빠르다는 점입니다.
FText
In Unreal Engine 4 (UE4) the primary component for text localization is the FText
class. All user-facing text should use this class, as it supports text localization by providing the following features:
-
Formatting Text (to generate text from a placeholder pattern).
-
Generating derived text, such as making text upper or lower case.
FText
also features the AsCultureInvariant
function (or the INVTEXT
macro), which creates non-localized, or "culture invariant" text. This is useful for things like converting a player name from an external API into something you can display in your user interface.
You can create a blank FText
using either FText::GetEmpty()
, or by using just FText()
.
FString
FName 이나 FText 와는 달리, FString 은 조작이 가능한 유일한 스트링 클래스입니다. 대소문자 변환, 부분문자열 발췌, 역순 등 사용가능한 메서드는 많습니다. FString 은 검색, 변경에 다른 스트링과의 비교도 가능합니다. 그러나 바로 그것이 FString 이 다른 불변의 스트링 클래스보다 비싸지는 이유입니다.
변환
| 에서 | 로 | 예제| |---|------|---------|%fnametofstring% %fnametoftext% %fstringtofname% %fstringtoftext% %ftexttofstring% %ftexttofname%
인코딩
일반적으로 스트링 변수 리터럴 설정시에는 TEXT()
매크로를 사용해야 합니다. TEXT()
매크로를 지정하지 않으면, 리터럴은 ANSI 를 사용해서 인코딩되기에, 지원되는 글자가 크게 제한됩니다.
FString 에 전달되는 ANSI 리터럴은 TCHAR (네이티브 유니코드 인코딩)으로의 변환을 겪어야 하기에, TEXT()
를 사용하는 편이 보다 효율적입니다.
인코딩 관련 상세 정보는 캐릭터 인코딩 문서를 참고해 주시기 바랍니다.