[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만 출력된다는 것을 기억하자.
'Unreal > Manual' 카테고리의 다른 글
Unreal C++ Draw Debug : 오브젝트 그리기 (0) | 2023.11.02 |
---|---|
Unreal C++ 편리한 매크로 함수 위치(__FUNCTION__ ), 호출된 라인(__LINE__ ) (0) | 2023.11.02 |
Unreal Property System(Reflection) (0) | 2023.11.02 |
Unreal C++ Class Name.Generated.h 역할 (0) | 2023.11.02 |
Unreal C++ CoreMinimal.h, Engine.h (0) | 2023.11.02 |