본문 바로가기
[ Unreal5 ]/- 언리얼엔진5 실습

언리얼엔진5 c++ GEngine->AddOnScreenDebugMessage

by MRG 2024. 11. 23.
728x90
반응형

 


▣ TEXT() 매크로란?
TEXT() 매크로는 플랫폼 및 컴파일러 설정에 따라 문자열을 적절한 형식으로 변환합니다.

▣ TEXT() 매크로를 왜 사용하는가?

1) 엔진 내부 문자열 타입(TCHAR)과 호환성 유지
언리얼 엔진의 문자열 타입(FString, FText, TCHAR*)은 기본적으로 유니코드(TCHAR) 기반으로 동작합니다.
TEXT()를 사용하지 않고 일반 "" 문자열을 사용하면, 멀티바이트(ANSI) 문자열로 해석될 수 있어 컴파일 오류가 발생할 가능성이 있습니다.

2) 플랫폼 독립성 보장
일부 플랫폼에서는 char(ANSI) 대신 wchar_t(유니코드)가 기본 문자열 타입으로 설정될 수 있습니다.
TEXT()를 사용하면 모든 플랫폼에서 올바른 문자열 타입으로 변환됩니다.

3) 유니코드 지원
UE4/UE5는 UTF-16(유니코드)을 기본적으로 사용합니다.
TEXT()를 사용하지 않으면, 멀티바이트 문자열과의 변환 과정에서 문자 인코딩 오류가 발생할 수 있음.

 

▣ GEngine
GEngine: Unreal Engine의 전역 엔진 객체입니다.
이를 통해 다양한 엔진 기능(로그 출력, 디버깅 메시지 출력, 상태 정보 등)에 접근할 수 있습니다.
화면 디버깅 메시지를 출력하려면 GEngine 객체를 통해 AddOnScreenDebugMessage 함수를 호출합니다.

 

▣  AddOnScreenDebugMessage
이 함수는 디버깅 메시지를 화면에 출력합니다. 주요 매개변수는 다음과 같습니다:
Key: 출력 메시지의 고유 키입니다. -1로 설정하면 메시지가 누적 출력됩니다.
TimeToDisplay: 메시지가 화면에 표시될 시간(초 단위). 여기서는 1.5f로 설정해, 메시지가 1.5초 동안 표시됩니다.
DisplayColor: 메시지의 색상입니다. 여기서는 FColor::Green으로 녹색으로 설정했습니다.
DebugMessage: 출력할 문자열 메시지입니다. 여기서는 FString::Printf로 생성된 문자열이 사용됩니다.

 

▣  FString::Printf
FString::Printf는 포맷된 문자열을 생성하는 함수입니다. C++의 printf와 비슷한 방식으로 작동합니다.
TEXT("Hit Actor: %s"): 문자열 포맷입니다. %s는 문자열 자리 표시자로, 뒤에 나오는 변수 값이 대체됩니다.
*HitActor->GetName(): HitActor 객체의 이름을 가져옵니다. GetName()은 AActor 클래스에서 제공하는 함수로, 액터의 이름을 반환합니다.
*: FString에서 문자열 값을 직접 사용하기 위해 포인터 연산자를 사용합니다.

 

▣  HitActor->GetName()
HitActor는 어떤 액터(게임 객체)와 상호작용한 후 그 액터를 가리키는 포인터입니다.
GetName(): Unreal Engine의 AActor 클래스에서 제공하는 함수로, 액터의 이름을 FString 형식으로 반환합니다.
예를 들어, 액터 이름이 "Cube"라면 GetName()은 "Cube"라는 문자열을 반환합니다.

 

 

 

 

▣ API

https://docs.unrealengine.com/5.0/en-US/API/Runtime/Engine/Engine/UEngine/AddOnScreenDebugMessage/

 

https://docs.unrealengine.com/5.0/en-US/API/Runtime/CoreUObject/UObject/UObjectBaseUtility/GetName/

 

728x90
반응형

댓글