1. FName
- 문자열 중 초경량 시스템
- 문자열이 재사용되도 데이터 테이블에 한 번만 저장되는 것이 특징
- 대소문자 구별 X, 변경 X, 조작 X
- ex ) 에셋 이름, 머티리얼 파라미터, 액터 태그명, 스켈레탈 본 이름
2. FText
- 로컬라이제이션 전용 문자열 클래스
- 유저에게 보여지는 모든 텍스트는 이 클래스를 사용
- UMG 텍스트 컴포넌트에서도 사용
- ex ) HUD에 보이는 텍스트, 유저 인풋 텍스트…
3. FString
- FText, FName과 달리 텍스트 조작이 가능
- 대소문자 변환, 부분문자열 발췌, 역순 등의 함수 제공
- 검색, 변경, 비교 가능하지만 FText, FName보다 자원을 더 소모
FString TestString = FString(TEXT("Test String"));
1. 변환
- From FString
- TestString = FName(*TestString);
- → ‘FString’ 에서 ‘FName’ 으로, FName은 대소문자를 구분하지 않아 손실성 변환
- TeshString = FText::FromString(TestString);
- → FString의 내용이 FText의 “자동 현지화”는 받지 못할 수 있음
- To FString
- TestString = TestStrng.ToString();
- → FName, FText에서의 변환 모두 같은 구문
2. 비교
- 오버로딩된 == 연산자를 사용해, 두 String을 비교하거나 FString과 TCHAR*s 배열과 비교 가능
- FString::Equals()를 통해 대소문자 무시 여부를 포함한 비교가 가능
- ⇒ ESearchCase::IgnoreCase / ESearchCase::CaseSensitive
TestString.Equals(TEXT("Test"), ESearchCase::CaseSensitive);
3. 검색
TestString.Contains(TEXT("Test"), ESearchCase::CaseSensitive, ESearchDir::FromEnd);
-> 검색 대상, 대소문자 무시 여부, 검색 방향
- 서브스트링 인스턴스의 인덱스
- → 찾지 못할 경우 -1 반환
TestString.Find(TEXT("test"), ESearchCase::CaseSensitive, ESearchDir::FromEnd, 10);
-> 검색 대상, 대소문자 무시 여부, 검색 방향, 시작 인덱스
4. 조작
Canvas->DrawText(BigFont, TestString, 110.0f, 110.0f);
→ UEngine::AddOnScreenDebugMessage()를 사용
⇒ ( Key, TimeToDisplay, DisplayColor, DebugMessage )
- Key : 같은 메시지가 여러번 추가되지 않도록 하기 위한 고유 키
- TimeToDisplay : 메시지를 얼마나 오래 표시할 것인지 초 단위
- DisplayColor : 표시되는 텍스트의 색
- DebugMessage : 표시할 메시지