#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Item.generated.h"
// 로그 카테고리 선언
DECLARE_LOG_CATEGORY_EXTERN(LogItem, Warning, All);
UCLASS()
class STRIKEZONE_API AItem : public AActor
{
GENERATED_BODY()
public:
AItem();
protected:
USceneComponent* SceneRoot;
UStaticMeshComponent* StaticMeshComp;
virtual void BeginPlay() override;
};
DECLARE_LOG_CATEGORY_EXTERN : 헤더 파일에서 로그를 선언
- LogItem : 카테고리 이름을 지정
- Warning : 기본적으로 Warning 이상의 로그를 출력하도록 설정
- All : 필요시 나중에 모든 로그를 활성화 할 수 있도록 설정
#include "Item.h"
// LogItem 정의
DEFINE_LOG_CATEGORY(LogItem);
AItem::AItem()
{
SceneRoot = CreateDefaultSubobject<USceneComponent>(TEXT("SceneRoot"));
SetRootComponent(SceneRoot);
StaticMeshComp = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("StaticMesh"));
StaticMeshComp->SetupAttachment(SceneRoot);
static ConstructorHelpers::FObjectFinder<UStaticMesh> MeshAsset(TEXT("/Game/Resources/Props/SM_Chair.SM_Chair"));
if (MeshAsset.Succeeded())
{
StaticMeshComp->SetStaticMesh(MeshAsset.Object);
}
static ConstructorHelpers::FObjectFinder<UMaterial> MaterialAsset(TEXT("/Game/Resources/Materials/M_Glass.M_Glass"));
if (MaterialAsset.Succeeded())
{
StaticMeshComp->SetMaterial(0, MaterialAsset.Object);
}
}
void AItem::BeginPlay()
{
Super::BeginPlay();
UE_LOG(LogTemp, Warning, TEXT("My Log!"));
UE_LOG(LogItem, Error, TEXT("My Sparta!"));
}
- cpp파일에서 LogItem을 정의하였음
- 게임이 시작되면 LogTemp 카테고리와 LogItem 카테고리의 로그가 찍히는 것을 확인할 수 있다.
만약 LogItem 카테고리를 다른 클래스에서 사용하고자 한다면 Item 헤더를 포함시키기만 하면 사용할 수 있지만,
로그 카테고리 하나를 사용하자고 관련 없는 Item 헤더를 포함시키는 것은 비효율적이다. 그래서 로그 카테고리를 선언해놓은 공용 유틸리티 헤더파일을 따로 만들어 사용한다.
'내배캠 > Unreal Engine' 카테고리의 다른 글
FRotator와 FQuat (0) | 2025.01.21 |
---|---|
액터의 라이프 사이클 (0) | 2025.01.21 |
정적 초기화와 런타임 로드 (0) | 2025.01.20 |
빌드 문제 복구하기 (0) | 2025.01.20 |
Class 설계 연습(AI Enemy) (0) | 2025.01.08 |