[UE5] 유틸리티 매크로 작성하기
by 브이담곰📘 인생 언리얼 교과서 교재를 공부하고 참고하여 작성했습니다.
디버그 시 로그를 표시하기 위해 몇가지 매크로를 만든다.
1. #define 전처리문을 이용한 매크로
TPSProject.h ({프로젝트이름}.h)
#pragma once
#include "CoreMinimal.h"
#define CALLINFO (FString(__FUNCTION__)+TEXT("(")+FString::FromInt(__LINE__) + TEXT(")"))
FString(__FUNCTION__) : 호출된 곳의 함수이름을 문자열로 표현
FString::FromInt(__LINE__) : 호출된 곳의 줄 번호를 문자열로 가져옴.
TPSProjectGameMode.cpp
ATPSProjectGameMode::ATPSProjectGameMode()
{
UE_LOG(TPS, Warning, TEXT("%s"), *CALLINFO)
}
2. CALL_INFO 매크로 정의
아까 작성했던 TPSProject.h에 UE_LOG 함수를 대체할 매크로를 만든다.
#define PRINT_CALLINFO() UE_LOG(TPS, Warning, TEXT("%s"), *CALLINFO)
TPSProjectGameMode.cpp
ATPSProjectGameMode::ATPSProjectGameMode()
{
PRINT_CALLINFO();
}
3. PRINT_LOG 매크로 정의
#define PRINT_LOG(fmt, ...) UE_LOG(TPS, Warning, TEXT("%s %s"), *CALLINFO, \
*FString::Printf(fmt, ##__VA_ARGS__))
`...`
가변 인수 → 인수를 여러개 넘겨받을 수 있다.
\
줄바꿈 처리
EX
ATPSProjectGameMode::ATPSProjectGameMode()
{
PRINT_LOG(TEXT("My Log : %s"), TEXT("TPS Project!!"));
}
4. 로그 카테고리 변경
TPSProject.h
#pragma once
#include "CoreMinimal.h"
DECLARE_LOG_CATEGORY_EXTERN(TPS,Log,All); //TPS카테고리 선언
#define CALLINFO (FString(__FUNCTION__)+TEXT("(")+FString::FromInt(__LINE__) + TEXT(")"))
#define PRINT_CALLINFO() UE_LOG(TPS, Warning, TEXT("%s"), *CALLINFO)
DECLARE_LOG_CATEGORY_EXTERN
레벨 별 로그 카테고리를 정의하기 위한 매크로
'Client > UnrealEngine5' 카테고리의 다른 글
[UE5] LineTrace를 이용한 총알 발사 (0) | 2023.05.12 |
---|---|
[UE5] C++ 클래스 기반으로 블루프린트 생성하기 (0) | 2023.05.10 |
[UE5] 언리얼 프로젝트 시작 맵 변경하기 (0) | 2023.05.10 |
[UE5] 언리얼 프로젝트 소스코드 관리하기. (0) | 2023.05.10 |
[UE5] 언리얼 빌드 시스템 실습 (0) | 2023.05.07 |
블로그의 정보
농담곰담곰이의곰담농
브이담곰