솔루션 이름 : KGame
//KGame.h
//#include "CoreMinimal"
#include "EngineMinimal.h"
이 헤더는 여러 cpp 및 헤더에 연결을 해서 사용할 예정
Engine.h 는 내용이 많아서 무겁고, 여러 헤더에 연결을 해서 사용을 하면, 그만큼 비용을 들거라 예상
CoreMinimal.h은 기본적인 게임 구성에 포함하는 내용이 부족하므로
EngineMinimal.h 을 사용
사용할 디버그 로그 매크로 세팅
//h
DECLARE_LOG_CATEGORY_EXTERN(KGame, Log, All);
#define KLOG_CALLINFO (FString(__FUNCTION__) + TEXT("(") + FString::FromInt(__LINE__) + TEXT(")"))
#define KLOG_S(Verbosity) UE_LOG(KGame, Verbosity, TEXT("%s"), *KLOG_CALLINFO)
#define KLOG(Verbosity, Format, ...) UE_LOG(KGame, Verbosity, TEXT("%s %s"), *KLOG_CALLINFO, *FString::Printf(Format, ##__VA_ARGS__))
#define KCHECK(Expr, ...) {if(!(Expr)) {KLOG(Error, TEXT("ASSERTION : %s"), TEXT("'"#Expr"'")); return __VA_ARGS__;}}
//cpp
#include "KGame.h"
#include "Modules/ModuleManager.h"
DEFINE_LOG_CATEGORY(KGame);
IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, KGame, "KGame" );
사용예시
auto GameInstance = Cast<UGameInstance>(UGameplayStatics::GetGameInstance(GetWorld()));
KCHECK(nullptr != GameInstance);
게임실행에 방해는 안하고
Null일 경우 오류 메시지가 출력이 된다.
'Unreal > Game 2 ' 카테고리의 다른 글
4.1 기존 바인딩 함수 이동 (0) | 2019.06.18 |
---|---|
4. 캐릭터 애니메이션 (0) | 2019.06.17 |
3. 플레이어 컨트롤러 (바인딩 방법 2개) (0) | 2019.06.15 |
2. 기본 게임모드 및 기본캐릭터 설정 (0) | 2019.06.14 |
0. 게임 기획? (0) | 2019.06.14 |