Unreal Game Mode Base


Unreal Engine에서 GameModeBase는 게임의 규칙, 승패 조건, 플레이어 스폰 방식 등을 정의하는 게임 모드의 기본 클래스입니다. GameModeBase는 기본적인 게임 흐름을 관리하며, 게임의 전반적인 로직을 제어하는 데 사용됩니다.

GameModeBase란?

GameModeBase는 Unreal Engine의 AGameModeBase 클래스에서 파생됩니다. 이 클래스는 게임이 어떻게 시작되고 끝나는지, 플레이어가 어떻게 스폰되는지, 그리고 게임 내에서 어떤 논리가 처리되는지를 관리하는 데 사용됩니다.

GameModeBase는 싱글 플레이어 및 비멀티플레이어 환경을 위한 기본 클래스입니다. 만약 멀티플레이어 기능을 지원하는 게임을 개발하려면 GameMode 클래스를 사용해야 할 수 있습니다.

GameModeBase 클래스 생성 및 구현

GameModeBase를 C++에서 생성하고 사용하는 방법을 단계별로 설명하겠습니다.

1. GameModeBase 클래스 생성

Unreal Editor에서 C++ 클래스를 생성할 때 GameModeBase를 부모 클래스로 선택하여 새로운 게임 모드를 생성할 수 있습니다.

  1. Unreal Editor에서 File > New C++ Class를 선택합니다.
  2. GameModeBase를 부모 클래스로 선택하고, 클래스 이름을 지정합니다. 예를 들어 MyGameModeBase라고 할 수 있습니다.
  3. Create Class 버튼을 눌러 클래스를 생성합니다.

이 작업을 완료하면 MyGameModeBase 클래스가 자동으로 생성되며, .h.cpp 파일이 프로젝트에 추가됩니다.

2. MyGameModeBase.h 파일

이 파일은 MyGameModeBase 클래스의 선언을 포함합니다. 기본적으로 다음과 같은 코드가 포함될 것입니다.

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "MyGameModeBase.generated.h"

/**
 * 
 */
UCLASS()
class MYPROJECT_API AMyGameModeBase : public AGameModeBase
{
    GENERATED_BODY()

public:
    AMyGameModeBase();

    virtual void StartPlay() override;
};

3. MyGameModeBase.cpp 파일

이 파일에는 MyGameModeBase 클래스의 구현이 포함됩니다.

#include "MyGameModeBase.h"
#include "UObject/ConstructorHelpers.h"
#include "GameFramework/Actor.h"

AMyGameModeBase::AMyGameModeBase()
{
    // 기본 폰 클래스 설정 (플레이어가 스폰될 때 사용할 클래스)
    static ConstructorHelpers::FClassFinder<APawn> PlayerPawnClassFinder(TEXT("/Game/Blueprints/MyDefaultPawn"));
    DefaultPawnClass = PlayerPawnClassFinder.Class;
}

void AMyGameModeBase::StartPlay()
{
    Super::StartPlay();

    // 게임이 시작될 때의 초기화 작업
    if (GEngine)
    {
        GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Yellow, TEXT("Game has started!"));
    }
}

4. 주요 기능 설명

  • AMyGameModeBase() 생성자:
  • 게임 모드의 기본 설정을 수행합니다. 예를 들어, DefaultPawnClass를 설정하여 플레이어가 스폰될 때 사용할 기본 폰 클래스를 지정할 수 있습니다.
  • StartPlay() 함수:
  • 게임이 시작될 때 호출됩니다. 이 함수는 게임이 시작될 때 초기화 작업을 수행하는 데 사용됩니다. 예를 들어, 디버그 메시지를 출력하거나 초기 게임 상태를 설정할 수 있습니다.

5. 게임 모드 사용하기

MyGameModeBase 클래스를 생성하고 구현한 후에는 이 게임 모드를 프로젝트에서 사용해야 합니다.

  1. 프로젝트 설정:
  • Unreal Editor에서 Edit > Project Settings를 선택합니다.
  • 왼쪽 메뉴에서 Maps & Modes를 선택합니다.
  • Default GameMode 항목을 MyGameModeBase로 설정합니다.
  1. 월드 설정:
  • 특정 레벨에서만 MyGameModeBase를 사용하고 싶다면, 해당 레벨을 열고 World Settings에서 GameMode OverrideMyGameModeBase로 설정합니다.

요약

GameModeBase는 게임의 규칙과 흐름을 제어하는 데 중요한 역할을 하는 클래스입니다. C++에서 이 클래스를 생성하고 확장함으로써, 여러분은 게임이 시작될 때의 행동, 플레이어 스폰 방법, 게임 승패 조건 등을 자유롭게 설정할 수 있습니다. GameModeBase를 통해 게임의 전반적인 로직을 제어하고, 필요에 따라 사용자 정의된 게임 모드를 제작할 수 있습니다.


Leave a Reply

Your email address will not be published. Required fields are marked *