본문 바로가기

공부/이득우의 언리얼 프로그래밍

[Study] Part 1 - 언리얼 C++ 기본 타입과 문자열 (3/15)

728x90
반응형

 

 

 

 

  • 정리
    1. 언리얼이 C++ 타입 int를 사용하지 않는 이유
    2. 다양한 캐릭터 인코딩 시스템의 이해
    3. 언리얼의 문자열 처리의 이해
    4. FString의 구조와 사용 방법
    5. FName의 구조와 사용 방법

 

 

 

 

 

  • 왜 언리얼은 기본 타입을 따로 지정하는가? (기존 C++ 타입이 아닌 언리얼 C++을 사용하는 이유)
    • C++ 최신 규약에서 int는 최소 32비트를 보장하도록 규정되어 있음.
      • 특정 플랫폼에서는 64bit로 해석될 수 있음.
      • 따라서 데이터를 저장할 때 int 타입의 크기를 확신할 수 없음
    • 게임 제작의 특징
      • 데이터 정보가 명확해야 한다.
      • 단일 컴퓨터에서 최대 퍼포먼스를 뽑아내야 한다.
      • 네트워크 상에서 데이터 통신이 효율적이고 안정적이어야 한다.
  • bool 타입의 선언
    • bool은 크기가 명확하지 않음.
    • 헤더에는 가급적 bool 대신 uint8 타입을 사용하되 Bit Field 오퍼레이터를 사용.
    • 일반 uint8과의 구분을 위해 b접두사를 사용.
    • Cpp 로직에서는 자유롭게 bool을 사용

 

 

 

bool 타입의 선언 예시

 

 

 

 

  • 왜 언리얼은 문자열을 따로 지정하는가?
    • 1990년대 후반에 이르러서야 표준화된 아시안 문자열 표준 (한국, 중국, 일본 → 한 글자당 2Bytes씩 사용하는 언어의 탄생)
  • 문자열 처리의 종류
    • Single byte(ANSI, ASCII) : 컴퓨터 초창기
    • Multibyte(EUC-KR, CP949) : 컴퓨터 보급기 (1990년대 초중반)
    • Unicode(UTF-8, UTF-16) : 국제 표준 정착기 (1990년대 후반)
  • 하지만 이 모든 문자열은 아직도 사용되고 있음
    • C++ STL은 ASCII, UTF-8, UTF-16만 지원함.
    • Windows 10은 멀티바이트를 지원함. 하지만 다른 운영체제는 지원하지 않음
    • → 처리해야할 문자열의 타입이 총 3종류나 된다.
  • 이 문제를 심플하게 처리하기 위해 언리얼 같은 경우에는 TCHAR라고 하는 문자열 고유한 처리 방식을 제공하고 있다. 그렇기 때문에 우리는 TCHAR 하나만 가지고 문자열을 처리해주면 된다.

 

 

 

 

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/character-encoding-in-unreal-engine/?application_version=5.1

 

dev.epicgames.com

 

  • 언리얼은 내부적으로 UTF-16 포맷을 사용 (한글자당 2Bytes)

 

 

 

 

 

 

 

 

 

 

해당 포스트는 인프런의 <이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해>
강의를 수강하고 정리한 내용입니다.
 

이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해 | 이득우 - 인프런

이득우 | 대기업 현업자들이 수강하는 언리얼 C++ 프로그래밍 전문 과정입니다. 언리얼 엔진 프로그래머라면 게임 개발전에 반드시 알아야 하는 언리얼 C++ 기초에 대해 알려드립니다., [사진] 언...

www.inflearn.com

 

 

 

 

 

 

 

728x90