[Unreal_C++_DarkSoul]#2_Custom Log Class
Unreal C++ 개발 중 "Custom Log 클래스"에 대한 내용입니다.
포트폴리오 진행 사항을 기록하기 위한 포스팅입니다.
Custom Log
1. CustomLog.h
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
/******************************************************************************
목적:
Debugging을 위해 로그 호출 함수가 위치한 함수 이름과 라인을 출력합니다.
*/*****************************************************************************
#define PrintLine(){ CustomLog::Log(__FUNCTION__, __LINE__);}
/**
*
*/
class DARKSOUL_API CustomLog
{
public:
static void Print(int32 InValue, int32 InKey = -1, float Duration = 10.0f, FColor InColor = FColor::Blue);
static void Print(float InValue, int32 InKey = -1, float Duration = 10.0f, FColor InColor = FColor::Blue);
static void Print(const FString& InValue, int32 InKey = -1, float Duration = 10.0f, FColor InColor = FColor::Blue);
static void Print(const FVector& InValue, int32 InKey = -1, float Duration = 10.0f, FColor InColor = FColor::Blue);
static void Print(const FRotator& InValue, int32 InKey = -1, float Duration = 10.0f, FColor InColor = FColor::Blue);
static void Log(int32 InValue);
static void Log(float InValue);
static void Log(const FString& InValue);
static void Log(const FVector& InValue);
static void Log(const FRotator& InValue);
static void Log(const UObject* InObject);
static void Log(const FString& InFuncName, int32 InLineNumber);
};
2. CustomLog.cpp
// Fill out your copyright notice in the Description page of Project Settings.
#include "CustomLog.h"
#include "Engine.h"
DEFINE_LOG_CATEGORY_STATIC(GameProject, Display, All)
void CustomLog::Print(int32 InValue, int32 InKey, float Duration, FColor InColor)
{
GEngine->AddOnScreenDebugMessage(InKey, Duration, InColor, FString::FromInt(InValue));
}
void CustomLog::Print(float InValue, int32 InKey, float Duration, FColor InColor)
{
GEngine->AddOnScreenDebugMessage(InKey, Duration, InColor, FString::SanitizeFloat(InValue));
}
void CustomLog::Print(const FString& InValue, int32 InKey, float Duration, FColor InColor)
{
GEngine->AddOnScreenDebugMessage(InKey, Duration, InColor, InValue);
}
void CustomLog::Print(const FVector& InValue, int32 InKey, float Duration, FColor InColor)
{
GEngine->AddOnScreenDebugMessage(InKey, Duration, InColor, InValue.ToString());
}
void CustomLog::Print(const FRotator& InValue, int32 InKey, float Duration, FColor InColor)
{
GEngine->AddOnScreenDebugMessage(InKey, Duration, InColor, InValue.ToString());
}
void CustomLog::Log(int32 InValue)
{
UE_LOG(GameProject, Display, L"%d", InValue);
}
void CustomLog::Log(float InValue)
{
UE_LOG(GameProject, Display, L"%f", InValue);
}
void CustomLog::Log(const FString& InValue)
{
UE_LOG(GameProject, Display, L"%s", *InValue);
}
void CustomLog::Log(const FVector& InValue)
{
UE_LOG(GameProject, Display, L"%s", *InValue.ToString());
}
void CustomLog::Log(const FRotator& InValue)
{
UE_LOG(GameProject, Display, L"%s", *InValue.ToString());
}
void CustomLog::Log(const UObject* InObject)
{
FString str;
if (!!InObject)
str.Append(InObject->GetName());
str.Append(!!InObject ? " Not Null" : "Null");
UE_LOG(GameProject, Display, L"%s", *str);
}
void CustomLog::Log(const FString& InFuncName, int32 InLineNumber)
{
FString str;
str.Append(InFuncName);
str.Append(", ");
str.Append(FString::FromInt(InLineNumber));
UE_LOG(GameProject, Display, L"%s", *str);
}
'개인프로젝트' 카테고리의 다른 글
[Unreal_C++_DarkSoul]#6_기능 구현, Targeting 기능 (0) | 2022.12.10 |
---|---|
[Unreal_C++_DarkSoul]#5_기능 구현, Target Point, Enemy Spawn 위치 (0) | 2022.12.10 |
[Unreal_C++_DarkSoul]#4_문제 해결, Data Table 로드 함수 (0) | 2022.11.27 |
[Unreal_C++_DarkSoul]#3_기능 구현, Custom Structure, Custom Enumeration (0) | 2022.11.23 |
[Unreal_C++_DarkSoul]#1_공부, Interaface 클래스 (0) | 2022.11.22 |