UnrealEngine4 | 언리얼엔진4

언리얼엔진 String

gyunnnnnn 2022. 11. 16. 13:39

FString

FString TestHUDString = FString(TEXT("This is my test FString."));

특징

  • 조작이 가능한 유일한 스트링 클래스이다.
  • 대소문자 변환, 부분 문자열 발췌, 역순 등 사용 가능한 메서드는 많다.
  • 검색, 변경에 다른 스트링과의 비교도 가능하다.
  • 다른 불변의 스트링 클래스보다 비용이 높다.
  • ==연산을 사용해서 비교할 수 있다.

함수

Contains()

  • 서브 스트링을 찾은 경우 true, 아니면 false를 반환한다.
  • 검색 대상은 FString 거나 TCHAR* 의 서브스트링이다.
  • 검색 기본 값은 처음부터 시작과 대소문자 무시이다.
  • SearchCase를 사용해서 검색 시 대소문자를 무시할 것인지를 지정할 수 있다.
  • ESearchDir을 사용해서 검색 방향을 지정할 수 있다.

변환

FString -> FName

  • TestHUDName = FName(*TestHUDString);
  • FName은 대소문자를 구분하지 않기 때문에 손실성 변환이라 위험하다.

FString -> FText

  • TestHUDText = FText::FromString(TestHUDString);
  • FText자동 현지화 혜택을 받지 못할 수 있다.

FText

특징

  • 텍스트 현지화에 사용한다.
  • 중간에 수정이 안된다.
  • 고양이 -> 고양이들, cat -> cats 규칙을 정해놓으면 현지화한다.
  • 오버로드된 연산자 비교를 지원하지 않는다.

함수

EqualTo

  • 비교 규칙을 결정하기 위해 ETextComparisonLevel 값을 사용한다.

EqualToCaseIgnored

  • ETextComparisonLevel 값이 SecondEqualTo를 호출한다.

CompareTo

  • 비교 규칙을 결정하기 위해 ETextComparisonLevel값을 사용한다.
  • int32를 반환하는데 같다면 0을 반환한다.
  • 양수를 반환하면 FText 호출이 FText 매개 변수를 기준으로 높게 정렬됨을 나타낸다.
  • 음수를 반환하면 FText 호출이 FText 매개 변수를 기준으로 낮게 정렬됨을 나타낸다.

CompareToCaseIgnored

  • ETextComparisonLevel 값이 SecondCompareTo를 호출한다.
  • UISlate/UMG, HUD/Canvas에서 사용한다.

변환

FText -> FString

  • TestHUDString = TestHUDText.ToString();
  • 안전하지 않은 변환이다.
  • 일부 언어에서는 변환 시 손실될 위험이 있다.

FName

FName TestHUDName = FName(TEXT("ThisIsMyTestFName"));

특징

  • 콘텐츠 브라우저에서 새 애셋 이름을 지을 때
  • 다이내믹 머티리얼 인스턴스의 파라미터를 변경할 때
  • 스켈레탈 메시에서 본에 접근할 때
  • 주어진 문자열을 재사용하여도 데이터 테이블에 한 번만 저장된다.
  • 대소문자를 구분하지 않는다.
  • 변경이 불가능하여 조작할 수 없다.
  • FName 테이블이 있어 해시로 검색하기에 속도가 빠르다.
  • 메모리에 끝까지 남아있는다.
  • == 연산자를 통해 비교 가능하다.

변환

FName -> FText

  • TestHUDText = FText::FromName(TestHUDName);
  • FText자동 현지화 혜택을 받지 못할 수 있다.

FName -> FString

  • TestHUDString = TestHUDName.ToString();

'UnrealEngine4 | 언리얼엔진4' 카테고리의 다른 글

액터 가져오기, Serialize  (0) 2022.11.05
언리얼엔진 컨테이너 종류  (1) 2022.11.04