ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 언리얼 C++ 기본타입과 문자열
    게임 개발/Unreal 2024. 1. 25. 00:12

    유니코드

    문자와 대응되는 숫자를 포함하는 표

     

    인코딩

    데이터를 특정 형식으로 변환하는 과정(UTF-8)

    TEXT("Hello World");

    TEXT 매크로는 언리얼 엔진에서 문자열 리터럴을 프로젝트의 유니코드 설정에 맞게 올바른 타입으로 자동으 변환한다.

     

    TCHAR

    유니코드를 위한 언리얼 표준 캐릭터 타입

    1. 플랫폼 독립성: TCHAR는 Unreal Engine 프로젝트 설정에 따라 char 또는 wchar_t로 자동 정의된다. 이는 프로젝트가 유니코드를 사용할지, ANSI 문자 인코딩을 사용할지에 따라 달라진다. 이러한 유연성은 개발자가 하나의 코드 베이스로 다양한 플랫폼에서 동작하는 게임을 개발할 수 있도록 지원한다.

     

    2. 국제화 및 로컬라이제이션 지원: 유니코드를 지원함으로써 Unreal Engine은 전 세계의 다양한 언어와 문자 세트를 처리할 수 있다. 이는 게임이 여러 언어로 쉽게 번역되고, 다양한 지역에서 사용될 수 있도록 해줍니다.

     

    3. 일관된 API 사용: TCHAR를 사용함으로써, Unreal Engine은 문자열 및 문자 처리를 위한 일관된 API를 제공한다. 이는 개발자가 문자열 처리를 보다 쉽게 하고, 코드의 가독성을 높이는 데 도움이 된다.

     

    4. 성능 최적화: TCHAR를 사용하면, 문자열 처리 및 관련 함수가 프로젝트 설정 및 플랫폼에 최적화된 방식으로 작동하도록 할 수 있습니다.  

     

    FString

    다른 타입에서 FString으로의 변환

    FString::Printf

    FString::SanitizeFloat

    FString::FromInt

     

    C런타임 수준에서 문자열을 처리하는 클래스 FCString

     

    FString에서 다른 타입으로의 변환 (안전하진 않다)

    FCString::Atoi

    FCString::Atof

    TCHAR 배열 [] 를 FString에 넣는 순간 TArray(언리얼 엔진이 제공하는 동적배열 클래스) 방식으로 문자열이 보관이 된다.

    TArray에서 실제 데이터를 꺼냈을 때는, 동적  배열이 속하고 있는 내부 자료에 대한 포인터를 가져와서(디 레퍼런싱), 넘겨줄때 사용하는 것이 포인터 연산자이다. 포인터 연산자를 써저 제공해주면 TCHAR 형태로 데이터가 필요한 경우에는 포인터 연산자를 써서 제공해주면 된다.

    FString 내부적으로 FCString클래스가 있다. FCString클래스는 일종의 C라이브러리 기본적인 스트링 관련 함수들을 포함하고 있는 래퍼 클래스이다.

    FString이 데이터를 보관하고 실제로 문자열을 찾거나 자르거나 이런 처리들은 FCString을 통해서 진행을 한다.

     

    FName: 에셋 관리를 위해 사용되는 문자열 체계

    대소문자 구분 없음

    한번 선언되면 바꿀 수 없음

    가볍고 빠름

    문자를 표현하는 용도가 아닌 에셋 키를 지정하는 용도로 사용

    빌드시 해시값으로 변환됨

     

    FText: 다국어 지원을 위한 문자열 관리 체계

    일종의 키로 작용함

    별도의 문자열 테이블 정보가 추가로 요구됨

    게임 빌드 시 자동으로 다양한 국가별 언어로 변환

     

    FName의 구조와 활용

    언리얼은 FName과 관련된 글로벌  Pool 자료구조를 가지고 있다.

    FName과 글로벌 Pool

    문자열이 들어오면 해시 값을 추출해 키를 생성해 FName에서 보관

    FName값에 저장된 값을 사용해 전역 Pool에서 원하는 자료를 검색해 반환

    문자 정보는 대소문자를 구분하지 않고 저장함. (Ignore Case)

     

    FName의 형성

    생성자에 문자열 정보를 넣으면 풀을 조사해 적당한 키로 변환하는 작업이 수반됨

    Find or Add

     

    #이득우의 언리얼 프로그래밍 Part1 

    댓글

Designed by Tistory.