[UnrealEngine] FString과 FText

Seongcheol Jeon·2024년 12월 29일

Unreal Engine

목록 보기
3/4
post-thumbnail

FString과 FText의 적절한 사용 시점

FStringFTextUnreal Engine에서 문자열 데이터를 처리하는 데 사용되지만, 그 용도와 사용 시점은 서로 다르다. 두 클래스를 올바르게 사용하는 것이 성능 최적화다국어 지원 측면에서 중요하다.

FString

FString은 기본적으로 문자열 데이터를 처리하기 위한 Unreal Engine의 클래스이다. C++std::string과 비슷하지만 Unreal Engine의 기능과 통합되어 있다.

사용 시점

  • 단순 문자열 처리
    • 문자열 데이터를 조작하거나 수정할 때 적합하다.
      • 예) 텍스트 파싱, 파일 경로 처리, 임시 문자열 데이터 등
  • 게임 로직에서 다국어 지원이 필요 없는 경우
    • UI에 표시되지 않고, 내부적으로만 사용하는 문자열
  • 고성능이 요구되는 작업
    • FStringFText보다 오버헤드(overhead)가 적기 때문에 고성능 작업에 적합하다.
FString PlayerName = "Player1";
FString FilePath = FPaths::ProjectDir() + "SaveData.txt"

FText

FText는 주로 다국어 지원UI 텍스트 관리에 초점을 맞춘 클래스이다. Unreal Engine로컬라이제이션(Localization) 시스템과 통합되어 있다.

사용 시점

  • UI 텍스트 및 사용자 표시 문자열
    • HUD, 메뉴, 버튼, 로그 메시지 등 사용자에게 표시될 텍스트
  • 다국어 지원이 필요한 경우
    • 다국어 번역이 필요한 문자열은 반드시 FText를 사용해야 한다.
  • 저장 및 검색되는 텍스트
    • FText는 문자열의 저장된 상태(Sanitizaed State)원문(Source Text)를 관리한다.
FText WelcomeMessage = NSLOCTEXT("MainMenu", "Welcome", "Welcome to the Game!");
FText ButtonLabel = FText::FromString("Start");

FString과 FText의 차이점

  • FString
    • 다국어 지원하지 않음
    • 성능이 상대적으로 빠름
    • 내부 문자열 조작할 때 사용
    • 간단한 문자열 관리
    • 로컬라이제이션 지원하지 않음
  • FText
    • 다국어 지원
    • 성능이 상대적으로 느림
    • 사용자에게 표시되는 문자열
    • 원문, 번역문 등 추가 데이터 관리
    • 로컬라이제이션에 최적화

정리

FString은 성능과 단순 문자열 처리가 중요한 경우 사용한다. 예를 들어 파일 경로, 데이터 처리 등의 내부 작업에 사용한다.

FText는 사용자에게 표시되거나 번역이 필요한 텍스트에 사용한다. 예를 들어 UI 텍스트, 게임 메시지 등에 사용한다.

0개의 댓글