10.14 - TIL

김혁·2025년 10월 14일

TIL

목록 보기
34/84

오늘의 코드카타

오늘의 공부

팀 프로젝트 진행 내용

  • 발표 자료 제작
    • 개요 작성
    • 기술적 세부사항 : Door & NavMesh
    • 트러블 슈팅 : Seamless Travel

오늘의 CS

언리얼의 3가지 String

1. FString

  • C++의 std::string과 유사한 가장 일반적인 문자열 타입
  • 특징
    • 내부적으로 TArray<TCHAR> 기반으로 동적 크기 배열로 구현되어 있음
    • 가변성 : 문자열을 수정, 연결, 파싱, 변환 등 자유롭게 변경 가능
    • 느린 속도 : 가변성과 내부적인 메모리 재할당 때문에 가장 느림
    • 예시 : 로깅 메시지, 디버그 정보, 가장 일반적으로 사용

2. FName

  • 문자열을 고유한 식별자로 사용할 수 있는 해시 기반 불변 문자열 타입
  • 특징
    • 문자열이 저장된 전역 Name Table(해시 테이블) 에 저장되고, 인덱스(ID)로 관리됨
    • 불변성 : 한 번 생성된 FName은 수정 불가
    • 빠른 비교 : 문자열 자체를 비교하지 않고, ID(정수) 비교로 처리하기 때문에 매우 빠름
    • 예시 : Tag, Socket 이름, Property 이름, Blueprint 이름 등에 사용됨

3. FText

  • 지역화(Localization)를 목적으로 설계된 불변 문자열 타입
  • 특징
    • UI, 대사, 메시지처럼 언어별 번역이 필요한 모든 곳에서 사용됨
    • 지역화 지원 : 언리얼 엔진의 지역화 시스템과 통합되어, 런타임에 사용자 언어에 맞춰 번역된 문자열을 자동으로 표시함
    • 불변성 : FName과 동일하게 한 번 생성되면 변경 불가. 동적으로 조작하려면 FString으로 변환이 필요함
    • 성능 : 텍스트 비교나 조작 용도로는 제일 느림, 메모리 사용도 많음
    • 예시 : 위젯의 텍스트, HUD 표시 메시지 등에 사용됨
  • 내부 구조 및 동작 방식
    • 핵심 식별자 3가지를 저장하게 됨
      • Source String : 원본 문자열
      • Namespace : 텍스트가 사용되는 영역을 구분하는 식별자 (UI, Gameplay 등)
      • Key : 특정 텍스트를 고유하게 식별하는 ID
    • 빌드 과정에서 Localization Tool이 모든 FText 객체로부터 식별자 3가지를 추출함
    • 추출된 정보를 번역 파일에 저장함
      • 번역가가 별도로 추출된 내용을 기반으로 파일을 생성해야 함
    • 게임을 실행하면, 엔진은 현재 설정된 언어에 해당하는 번역된 텍스트 데이터를 메모리에 로드하고, 화면에 표시될 때 Namespace와 Key를 사용하여 해당 언어에 맞는 문자열을 반환하게 됨
profile
게임 개발자를 향해..

0개의 댓글