그냥 게임개발자
[UE5] - 3장 UE_LOG, 디버깅에 대해서(C++) 본문
이번 강의 부터는 인프런 루키스 강의를 보고 작성한 글인점을 알려드립니다.
1. UE_LOG
2. Debugging
1. UE_LOG
UE_LOG는 포맷된 메시지를 로그 파일에 기록하는 매크로
UE_LOG(카테고리, 로깅수준, 로그 포맷)
ex)
UE_LOG(LogTemp, Warning, TEXT("텍스트 테스트 : %d"), 3);
카테고리
- 어떤 카테고리에서 로그가 발생했는지 알려줄 수 있는 정보, 언리얼 엔진에서는 카테고리를 90개 이상을 기본적으로 제공하는데 카테고리를 잘 분류해서 넣어준다면 로그 정보가 상세해질 수 있음
커스텀 카테고리
엔진에서 제공하는 카테고리 이외에 직접 만들어서 사용 가능
프로젝트명.h파일에 가서
DECLARE_LOG_CATEGORY_EXTERN(<LOG_CATEGORY>, Log, All);
프로젝트명.cpp에는 헤더파일에서 선언해준 로그명을 추가
DEFINE_LOG_CATEGORY(<LOG_CATEGORY>);
각 로그를 사용할 클래스 헤더에 #include "프로젝트명.h"를 해주고 출력하게 할 수 있다.
로깅수준
로깅 시스템의 자세한 수준을 정의하는 열거형 타입
Log
로그 출력 O, 게임 내 출력 X
Warning
로그 및 게임 내 출력 O / 노란색
Error
로그 및 게임 내 출력 O / 빨간색
Display
로그 및 게임 내 출력 O
Fatal
로그 및 게임 내 출력 O / 로그가 비활성화 된 경우에도 충돌 발생
Verbose
로그 출력 O, 게임 내 출력 X / 일반적으로 자세한 로깅에 사용
VeryVerbose
로그 출력 O, 게임 내 출력 X / 일반적으로 스팸을 출력하는 상세한 로깅 사용
로그 포맷
텍스트만 출력하는 것이 아닌 상황에 따라 데이터의 내용을 출력 가능
FString
UE_LOG(LogTemp, Warning, TEXT("An Actor's name is %s"), *ExampleActor->GetName());
Bool
UE_LOG(LogTemp, Warning, TEXT("The boolean value is %s"), ( bExampleBool ? TEXT("true"): TEXT("false") ));
Integer
UE_LOG(LogTemp, Warning, TEXT("The integer value is: %d"), ExampleInteger);
Float
UE_LOG(LogTemp, Warning, TEXT("The float value is: %f"), ExampleFloat);
FVector
UE_LOG(LogTemp, Warning, TEXT("The vector value is: %s"), *ExampleVector.ToString());
Multiple Specifiers
UE_LOG(LogTemp, Warning, TEXT("Current values are: vector %s, float %f, and integer %d"), *ExampleVector.ToString(), ExampleFloat, ExampleInteger);
2. Debugging

솔루션 구성이 기본적으로 DevelopmentEditor라고 되어있다.
언리얼 엔진 솔루션 구성
DebugGame
DebugGameEditor
Development
DevelopmenetEditor
Shipping
Debug와 Development의 차이점은 간단하게
DebugGame -> Debug
Development -> Release
라고 보면된다.
Shipping은 출시라고 보면된다.
Debug로 하게 되면 최적화가 덜 되는 대신에 디버그 심볼이 많기 때문에 디버깅에 용이하며 개발용도에 좋다.
Developmenet는 최적화가 더 잘된다고 한다. 하지만 디버깅할 때 일부 심볼이 사라지기 때문에 디버깅에는 좋지 않다고 볼 수 있다.
Shipping은 최적화로만 되어있어서 디버깅에는 매우 좋지 않다.
디버깅을 하고자 할 때 Debug Editor or DebugGameEditor를 설정해놓고 F5(디버깅 시작)하면 된다.
물론 에디터를 끄고 디버깅을 시작해야한다.
그러면 알아서 에디터가 켜진다.
근데 이 때 주의해야 할 점은 디버깅을 중지하면 에디터는 종료가 된다.
끄읕
'UE5_Tutorial1' 카테고리의 다른 글
[UE5] 6장 - 아이템 줍기, 스탯 매니저(C++) (0) | 2023.10.01 |
---|---|
[UE5] - 5장 MeleeAttack 구현(콤보 공격) (C++, 블루프린트) (0) | 2023.09.26 |
[UE5] - 4장 캐릭터 생성, 애니메이션 기초(C++, 블루프린트) (1) | 2023.09.25 |
[UE5] - 2장 PlayerCharacter 만들기(C++) (0) | 2023.09.21 |
[UE5] - 1장 Visual Studio 연동 및 오류 해결, C++ 클래스 생성 (0) | 2023.09.19 |