일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 줄 세우기
- algorithm
- UE5
- 백준
- softeer
- RootMotion
- 프로그래머스
- 2294
- directx
- NRVO
- winapi
- Frustum
- RVO
- Programmers
- GeeksForGeeks
- 티스토리챌린지
- Unreal Engine5
- C++
- baekjoon
- 언리얼엔진5
- UnrealEngine5
- 오블완
- 팰린드롬 만들기
- UnrealEngine4
- DirectX11
- C
- IFileDialog
- const
- 1563
- DeferredRendering
- Today
- Total
Game Develop
유용한 디버깅매크로함수 (호출함수명,라인 로그출력) 본문
헤더파일에 선언.
1.
#define CALLINFO (FString(__FUNCTION__) + TEXT("(") + FString::FromInt(__LINE__) + TEXT(")"))
-> 사용예시 : UE_LOG(LogTemp, Warning, TEXT("%s"), *CALLINFO);
-> LogTemp, Warning은 반복적으로 들어가는 인수이기 때문에 편하게 쓰기위해 2번처럼 더 감싼다.
-> 출력된 로그. 괄호안의 숫자는 해당 호출문이 적힌 Line.
-> Project_TPS_PHBGameModeBase파일의 9번째줄에서 호출됐다는 의미.
2.
#define PRINT_CALLINFO() UE_LOG(TPS, Warning, TEXT("%s"), *CALLINFO)
-> 사용예시 : PRINT_CALLINFO();
-> 1번보다 더 간편해졌으나, 로그에 찍을 임의의 문자열값을 넘기는 게 더 범용성 있기 때문에 최종적으로 3번 사용.
-> 출력된 로그.
3.
DECLARE_LOG_CATEGORY_EXTERN(TPS, Log, All); // 헤더부에 작성.
DEFINE_LOG_CATEGORY(TPS); // 구현부(CPP)에 작성. 로그종류에 TPS라는 로그카테고리를 추가.
#define PRINT_LOG(fmt, ...) UE_LOG(TPS, Warning, TEXT("%s %s"), *CALLINFO, \ // #define에서 줄바꿈할때 \ 이용.
*FString::Printf(fmt, ##__VA_ARGS__))
사용 예시 :
PRINT_LOG(TEXT("My Log : %s"), TEXT("Write what You Want !!"));
1번 2번과 달리 맨 앞에 새로 추가한 TPS라는 카테고리로 잘 출력된 걸 확인할 수 있다.
스크린에 출력하려할 경우 아래처럼 사용.
GEngine->AddOnScreenDebugMessage(1, 5.f, FColor::Red, FString::Printf(TEXT("direction.x %f"), mDirection.X));
여기서 첫번째매개변수값은 key값이다. ImGui같은거 사용해본 사람은 아마 알듯한데, 출력하려는 메시지마다 다르게 값을 줘야한다.
-1값을 넣으면 함수명 그대로 스크린에 계속해서 로그메시지가 추가된다. 키값이 -1일 경우, 이 메시지를 업데이트 또는 새로고칠 필요가 없음을 나타낸다고 한다. 그래서 그냥 쭉쭉 이어서 출력되는듯하다.
양수값을 넣으면 깔끔하게 하나의 메시지만 고정되서 출력된다.
아래는 실제 예시캡처.
-1값을 넣었을 경우
밑으로 쭉쭉 출력된다.
양수값을 넣었을 경우
깔끔하게 한번만 출력된다.
좀 더 자세한 내용은
https://unrealcommunity.wiki/logging-lgpidy6i
을 참고하자.
'UnrealEngine5 > 이것저것' 카테고리의 다른 글
라인트레이스, 파티클 재생 (0) | 2022.10.08 |
---|---|
UMG 최적화에 대한 좋은 내용 (1) | 2022.09.26 |
뭔가 안된다 싶으면 블루프린트파일 삭제 후 재생성해보자. (0) | 2022.09.24 |
언리얼엔진에서의 컴파일 (0) | 2022.09.22 |
Light Property (0) | 2022.09.20 |