1.3 - 로그 메시징 추가

게임에 로그 메시징 추가법을 배워봅니다.

Windows
MacOS
Linux

프로젝트에 코드 추가를 시작하기 좋은 방법은, FPSGameMode 에 로그 메시지를 추가하는 것입니다. 로그 메시지는 개발 도중 코드를 점검하고 디버깅하기에 정말 좋습니다. 이 글에서는, 로그 메시지를 사용하여 언리얼 엔진에 기본 제공되는 기본 Game Mode 가 아닌, FPSGameMode 가 실제 사용중인지 점검해 봅니다.

FPSProjectGameMode 헤더 파일

  1. Solution Explorer 에서 FPSProject > Source > FPSProject 를 펼칩니다.

    InterfaceFile.png

  2. FPSProjectGameMode.h 파일을 더블클릭하여 FPSGameMode 클래스의 헤더 파일을 엽니다.

  3. 클래스 선언은 다음과 같을 것입니다:

    UCLASS()
    class FPSPROJECT_API AFPSGameMode : public AGameModeBase
    {
        GENERATED_BODY()
    };
  4. AFPSProjectGameMode 생성자 선언 아래 다음과 같은 함수 선언을 추가합니다:

    virtual void StartPlay() override;

    이 함수 선언은 (AActor 클래스에서 상속된) StartPlay() 함수를 덮어써서 게임플레이가 시작되면 로그 메시지를 출력하도록 할 수 있습니다.

  5. FPSProjectGameMode.h 는 다음과 같을 것입니다:

    // Fill out your copyright notice in the Description page of Project Settings.
    
    #pragma once
    
    #include "GameFramework/GameModeBase.h"
    #include "FPSProjectGameMode.generated.h"
    
    /**
     * 
     */
    UCLASS()
    class FPSPROJECT_API AFPSProjectGameMode : public AGameModeBase
    {
        GENERATED_BODY()
    
        virtual void StartPlay() override;
    };
  6. Visual Studio 에서 헤더 파일을 저장합니다.

FPSProjectGameMode CPP 파일

  1. Solution Explorer 에서 FPSProjectGameMode.cpp 파일을 찾습니다 (FPSProject > Source > FPSProject).

    ImplementationFile.png

  2. FPSProjectGameMode.cpp 에 더블클릭하여 FPSGameMode 클래스에 대한 구현 파일을 엽니다.

  3. AFPSProjectGameMode 생상자 아래 다음과 같은 StartPlay() 함수 코드를 추가합니다.

    void AFPSProjectGameMode::StartPlay()
    {
        Super::StartPlay();
    
        if (GEngine)
        {
            // 디버그 메시지를 5 초간 표시합니다.
            // "키" (첫 번째 인수) 값을 -1 로 하면 이 메시지를 절대 업데이트하거나 새로고칠 필요가 없음을 나타냅니다.
            GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, TEXT("Hello World, this is FPSGameMode!"));
        }
    }

    StartPlay() 가 이제 게임플레이가 시작되면 화면에 노랑색으로 새로운 디버그 메시지 (Hello World, this is FPSGameMode!) 를 5 초간 출력합니다.

  4. FPSProjectGameMode.cpp 는 이제 다음과 같을 것입니다:

    // Fill out your copyright notice in the Description page of Project Settings.
    
    #include "FPSProject.h"
    #include "FPSProjectGameMode.h"
    
    void AFPSProjectGameMode::StartPlay()
    {
        Super::StartPlay();
    
        if (GEngine)
        {
            // 디버그 메시지를 5 초간 표시합니다.
            // "키" (첫 번째 인수) 값을 -1 로 하면 이 메시지를 절대 업데이트하거나 새로고칠 필요가 없음을 나타냅니다.
            GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, TEXT("Hello World, this is FPSGameMode!"));
        }
    }
  5. Visual Studio 에서 CPP 파일을 저장합니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼