FName
문자열 사용에 있어서 초경량 시스템을 제공하며, 주어진 문자열이 재사용된다 해도 데이터 테이블에 한 번만 저장되는 것이 특징이다. FName 은 대소문자를 구분하지 않는다. 변경도 불가능하여, 조작할 수 없다.
[예]
- 어셋 이름
- 머티리얼 파라미터
- 액터 태그명
- 스케레탈 본 이름
FText
로컬라이제이션 전용 문자열 클래스. 유저에게 보여지는 모든 텍스트는 이 FText 클래스를 사용해야 한다. UMG 텍스트 컴포넌트에 FText를 사용한다.
[예]
- HUD에서 보여지는 모든 텍스트
- 유저 인풋 텍스트
- Creating localized text literals?
- 텍스트 포맷
- 숫자를 텍스트로 변환
- 날짜/시간을 텍스트로 변환
- 기존 텍스트를 upper case, lower case로 변환
FStrings
FText, FName과 달리 텍스트 조작이 가능한 클래스. 대소문자 변환, 부분문자열 발췌, 역순 등의 함수를 제공한다. 검색, 변경, 비교도 가능합니다. 때문에 FText, FName보다 자원을 더 소모한다.
[예]
- URL 만들기
- 저장파일 이름 생성
변환
FName | FString | TestHUDString = TestHUDName.ToString(); |
FName | FText | TestHUDText = FText::FromName(TestHUDName); FName -> FText 는 가능한 경우도 있지만, FName 의 내용이 FText 의 "자동 현지화" 적용을 받지 못할 수 있음에 주의해야 한다.
|
FString | FName | TestHUDName = FName(*TestHUDString); FString -> FName 은 손실성 변환이라 위험하다. FName 은 대소문자를 구분하지 않는다.
|
FString | FText | TestHUDText = FText::FromString(TestHUDString); FString -> FText 은 가능한 경우도 있지만, FString 의 내용이 FText 의 "자동 현지화" 적용을 받지 못할 수 있음에 주의해야 한다.
|
FText | FString | TestHUDString = TestHUDText.ToString(); FText -> FString 은 안전하지 않다. 일부 언어에서는 변환시 손실될 위험이 있다.
|
FText | FName | FText 에서 FName으로의 직접 변환은 없다. 대신, FString 을 거친 다음 FName 으로 변환하는 방법이 있다. |
'게임 개발 > Unreal Engine' 카테고리의 다른 글
[Unreal Engine] 라이팅(Lighting) (24) | 2021.12.30 |
---|---|
[Unreal Engine] 액터의 수명주기(Actor Lifecycle) (30) | 2021.12.29 |
[Unreal Engine] Actor, Pawn, Character 비교 (0) | 2021.12.28 |
[Unreal Engine] FVector API (0) | 2021.12.28 |
[Unreal Engine] FString API (0) | 2021.12.28 |