.
출력 윈도우 로그
UE_LOG( 카테고리, 로깅 수준, 형식 문자열, 인자 ... )
Save/Logs 폴더에 생성.
로그 카테고리
로깅 수준 : 메시지, 경고, 에러 등
로그 카테고리로 필터링 할 수 있다.
로그 카테고리 새로 정의하기.
GameCommon.h
DECLARE_LOG_CATEGORY_EXTERN( ArenaBattle, Log, All );
GameCommon.cpp
DEFINE_LOG_CATEGORY( ArenaBattle );
EngineMinimal.h 와 CoreMinimal.h 와의 차이는?
EngineMinimal.h : 4.7 릴리즈 노트에 언급.
CoreMinimal.h : 4.15 릴리즈 노트에 언급.
EngineMinimal.h가 CoreMinimal.h 를 포함하는 더 큰 레이어의 헤더파일.
CoreMnimal.h 는 언리얼 엔진 프로그래밍에 필요한 기본적인 타입, 연산들에 대한 헤더를 포함.
대략 코드를 훑어보니 아래 순서로 include 하고있음.
CoreMinimal.h < Core.h < CoreUObject.h < EngineMinimal.h
아래는 IWYU(Include what you use 의 축약어) 에 대한 도큐먼트 링크. CoreMinimal.h 설명 포함.
https://docs.unrealengine.com/en-US/Programming/BuildTools/UnrealBuildTool/IWYU/index.html
책에서 선언하고 쓰는 로그 메크로.
#define ABLOG_CALLINFO (FString(__FUNCTION__) + TEXT("(") + FString::FromInt(__LINE__) + TEXT(")"))
#define ABLOG_S(Verbosity) UE_LOG(ArenaBattle, Verbosity, TEXT("%s"), *ABLOG_CALLINFO)
#define ABLOG(Verbosity, Format, ...) UE_LOG(ArenaBattle, Verbosity, TEXT("%s %s"), *ABLOG_CALLINFO, *FString::Printf(Format, ##__VA_ARGS__))
어썰션.
크래쉬 리포트 창에서 정보를 디테일하게 보려면
디버깅 정보가 포함되어야 함. 언리얼 런쳐의 엔진 설정에서 추가 가능. 20기가.
check() 로 어썰션. 하지만 에디터가 종료됨.
대신 ensure() 를 추천.
아래에서 각종 Assert 단언문 참조.
https://docs.unrealengine.com/ko/Programming/Assertions/index.html
언리얼 헤더 툴이 생성하는 코드는 Intermediate 폴더에 저장됨.
Intermediate/Build/Win64/UE4Editor/Inc/ProjectName
Transform 정보가 필수적인 컴포넌트 = 씬 컴포넌트
Movement Component 같이 기능만 제공 = 액터 컴포넌트 (Actor Component)
(사실 씬 컴포넌트는 액터 컴포넌트를 상속받음.)
정리방법.
액터는 수동으로 제거해야 함.
.vs, Binaries, Intermediate, Project.sln 파일 제거.
우클릭 > Generate Visual Studio Project files
언리얼 빌드 툴은 Source 폴더를 분석, 생성. 참조 파일들은 Intermediate / ProjectFiles 폴더에 생성.
따라서, 액터를 제거하려면 Source 폴더에서 관련 파일 지우고, Visual Studio Project 재생성.
1. Source 폴더에서 .h/.cpp 파일 제거.
2. Generate Visual Studio project files
프로젝트 구성에서 관련 액터 파일 모두 제거됨.
챕터 주제는 움직이는 액터 제작이지만, 이 내용은 크게 어렵진 않아 짧게 다룸. 그 외에 언리얼 엔진을 만지면서 알아야 할 내용들에 대해서 더 비중있게 다루고 있어서 도움되는 내용이 많은 챕터.
.
.
.
'Unreal 엔진' 카테고리의 다른 글
[예제로 배우는 UE4] AI, Behavior Tree(인공지능, 비헤이비어 트리) (0) | 2019.12.22 |
---|---|
[C++로 개발하는 언리얼] 3장. 메모리 관리와 스마트 포인터 (0) | 2019.12.20 |
[C++로 개발하는 언리얼] 2장. 클래스 생성하기 (0) | 2019.12.20 |
[UE] 언리얼 Visual Studio 구성 셋팅, 플러그인 (0) | 2019.12.02 |
[UE/Err] 'GetRandomPointInNavigableRadius': is not a member of 'UNavigationSystemBase' (0) | 2019.11.24 |
[이득우의 언리얼 C++] 챕터2 액터의 설계 (0) | 2019.11.19 |
[이득우의 언리얼 C++] 챕터1 개발 환경 설정 (0) | 2019.11.19 |