본문 바로가기
Unreal/Manual

Unreal C++ Debug Log (BP:Print String) 출력 방법

by Dev_카페인 2023. 11. 2.
반응형

[Unreal/C++] Debug Log (BP:Print String) 출력 방법

 

언리얼 블루프린트에서 Log 를 출력하는 방법은 PrintString을 사용하면 된다.

Screen에 출력하는 것과 Log에 출력하는 방법 두가지가 기본적으로 체크되어 있다.

 

블루프린트에서 PrintString을 진행하면 위와같이 OutputLog 창과 Screen에 출력된 로그를 볼 수 있는데

C++에서는 출력 방법이 나뉜다.

UE_LOG로 출력하는 방법과 UEngine의 AddOnScreenDebugMessage로 출력하는 방법이 있다.

UE_LOG는 define으로 정의되어 있고 Screen은 함수로 구현되어 있다.

#include "Engine.h"헤더파일을 추가해야하며 컴파일 시간이 꽤 오래걸릴 수 있다.

 

UE_LOG

UE_LOG를 먼저 살펴보자면 CategoryName, Verbosity, Format, ... 이 들어간다.

CategoryName : 언리얼 엔진에서 지정한 카테고리는 CoreGlobals.h 에서 찾을 수 있다.

테스트 등의 역할로 가장 대중적으로 사용되는 로그 카테고리는 LogTemp이며, 사용자가 직접 로그 카테고리를 지정해줄 수도 있다.

사용자가 직접 로그 카테고리를 지정하는 방법은

헤더파일에서 카테고리를 선언한 후

DECLARE_LOG_CATEGORY_EXTERN("CategoryName", Log, All);

CPP소스파일에서 정의하면 사용할 수 있다.

DEFINE_LOG_CATEGORY("CategoryName");

또 다른 방법으로는 STATIC을 이용해 소스파일에서 정의하는 방법도 있다.

Verbosity : 로깅 시스템의 상세 레벨을 정의하는 열거형이다.  특정 로그 줄의 줄바꿈 또는 로그 텍스트 컬러 설정을 허용하는 상세 레벨과 관련되지 않은 추가 레벨을 정의되어 있다.

Format은 는 C 언어 라이브러리 함수인 printf의 스타일로 표시된 문자열 리터럴 포맷이다.

이를 참고해 실제 사용하게 된다면 다음과 같은 형식을 만들어줄 수 있다.

 

 

Screen Log

게임뷰에 출력할 로그는

GEngine의 기능을 사용한다.

blueprint에서 사용하는 printString과 같이 키, 노출시간, 색상을 설정할 수 있다.

먼저 구현 결과를 보자면 다음과 같다.

여기서 Key의 역할은 중복제거 느낌이라보면 된다.

같은 키를 가진 로그의 경우 가장 최근 Log만 출력된다는 것을 기억하자.

반응형