본문 바로가기
프로그래밍

👨‍💻 [Unreal] 언리얼 엔진 5 에서 C++ 의 문자열은 TEXT 매크로를 사용할 것을 권장하는데, 이유가 무엇인가요?

by 밝음의기둥 2024. 11. 4.
반응형

👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

언리얼 엔진 5 에서 C++ 의 문자열은 TEXT 매크로를 사용할 것을 권장하는데, 이유가 무엇인지 간략히 알아보았습니다.


질문 >

언리얼 엔진 5 에서 C++ 의 문자열은 TEXT 매크로를 사용할 것을 권장하는데, 이유가 무엇인가요?

답변 >

언리얼 엔진 5에서는 C++에서 문자열을 사용할 때 TEXT() 매크로를 사용하는 것을 권장합니다. 이는 엔진의 문자열 인코딩 방식유니코드 지원을 보장하기 위함입니다. TEXT() 매크로는 문자열을 유니코드 형식으로 변환하여 다루기 때문에, 엔진이 다양한 플랫폼과 국제화된 환경에서도 문자열을 올바르게 처리할 수 있도록 돕습니다.

TEXT() 매크로를 사용하는 이유

  1. 유니코드 지원 및 플랫폼 호환성:
    • TEXT() 매크로는 문자열을 유니코드 형식인 TCHAR 타입으로 변환합니다. 이는 언리얼 엔진이 멀티플랫폼 환경에서 문자열을 일관되게 처리하고, 유니코드 지원을 보장하기 위해 중요한 역할을 합니다.
    • 유니코드는 여러 언어와 문자를 포괄하는 인코딩 방식이므로, 국제화 지원이 중요한 프로젝트에서 TEXT()를 사용하여 다양한 언어로 문자열을 안전하게 사용할 수 있습니다.
  2. FString과의 호환성:
    • 언리얼 엔진에서 문자열을 저장할 때 사용하는 FString과 FText는 유니코드 형식을 사용합니다. 따라서 문자열 리터럴을 사용할 때 TEXT()를 적용하면, FString 및 FText와의 호환성이 높아져 원활하게 사용할 수 있습니다.
    • TEXT()를 적용하지 않은 문자열은 FString과 같은 언리얼 엔진의 문자열 클래스와 직접적으로 호환되지 않아 불필요한 형 변환을 해야 할 수 있습니다.
  3. 멀티바이트 문자 지원:
    • TEXT() 매크로는 멀티바이트 문자를 지원하기 위해 모든 문자열을 유니코드로 변환합니다. 이를 통해 비영어권 문자를 다룰 때도 데이터 손실 없이 정확하게 표현할 수 있습니다. 반면에, TEXT()를 사용하지 않은 문자열은 플랫폼에 따라 멀티바이트 문자가 깨질 수 있습니다.
  4. 에디터와의 호환성 및 로컬라이제이션:
    • 언리얼 엔진 에디터에서 문자열을 다룰 때 TEXT() 매크로로 지정된 문자열은 유니코드 형식으로 처리되어, 에디터의 로컬라이제이션 시스템과 자연스럽게 통합됩니다. 이로 인해, 번역이나 다국어 지원을 할 때 일관된 문자열 처리가 가능합니다.

예시 코드

// TEXT 매크로를 사용하여 유니코드 문자열 생성
FString MyString = TEXT("Hello, Unreal Engine!");

// TEXT 매크로가 없는 경우
FString MyString = "Hello, Unreal Engine!"; // 권장되지 않음

위의 예시에서 TEXT("Hello, Unreal Engine!")은 유니코드 형식의 문자열로 인식되어 언리얼 엔진의 다양한 시스템과 호환됩니다.

결론

언리얼 엔진 5에서 TEXT() 매크로는 문자열 리터럴을 유니코드로 변환하여 멀티플랫폼 및 국제화 지원을 보장합니다. 이를 통해 문자열이 언리얼 엔진의 FString 및 FText와 호환되고, 다양한 언어와 플랫폼에서 안정적으로 동작하도록 합니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리 입니다. 📢 위로그@WiLog 는 자기주도학습을 목적으로 라이브 스트리밍을 합니다. 📢 1인 게임 개발을 목표로 Unreal과 Blender를 학습 중입니

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com


반응형