#define 전처리문을 이용하여 디버그 시 로그를 표시하기 위해 몇 가지 매크로를 만든다.

비주얼 스튜디오에서 프로젝트명.h 파일을 열기

스크린샷 2025-04-14 154225.png

해당 코드를 추가한다.

#define CALLINFO (FString(__FUNCTION__) + TEXT("(") + FString::FromInt(__LINE__) + TEXT(")"))

FString(FUNCTION) 구문은 CALLINFO가 호출된 곳의 함수 이름을 문자열로 표현한다. 그리고 TEXT 매크로 함수를 이용하여 “(” 괄호로 묶고 FString(LINE)을 이용하여 호출된 곳의 줄 번호를 문자열로 가져온다. 마지막으로 “)” 괄호를 닫아주는 내용으로 끝난다.

CALLINFO 매크로를 테스트하기 위해 GameModeBase 클래스를 상속받는 C++ 클래스를 만든다.(MyGameModeBase 이름으로 생성함)

스크린샷 2025-02-23 214608.png

MyGameModeBase.h 코드 수정


#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "MyGameModeBase.generated.h"

UCLASS()
class MYPROJECT_API AMyGameModeBase : public AGameModeBase
{
	GENERATED_BODY()
	
public:
	AMyGameModeBase();
};

MyGameModeBase.cpp 코드 수정

#include "MyGameModeBase.h"
#include "MyProject.h"

AMyGameModeBase::AMyGameModeBase()
{
	UE_LOG(LogTemp, Warning, TEXT("%s"), *CALLINFO);
}

이후 빌드하고 언리얼 에디터로 이동하면 Output Log에 다음 로그가 출력된 것을 확인 가능