Unreal Engine에서 GameModeBase는 게임의 규칙, 승패 조건, 플레이어 스폰 방식 등을 정의하는 게임 모드의 기본 클래스입니다. GameModeBase는 기본적인 게임 흐름을 관리하며, 게임의 전반적인 로직을 제어하는 데 사용됩니다.
GameModeBase란?
GameModeBase는 Unreal Engine의 AGameModeBase 클래스에서 파생됩니다. 이 클래스는 게임이 어떻게 시작되고 끝나는지, 플레이어가 어떻게 스폰되는지, 그리고 게임 내에서 어떤 논리가 처리되는지를 관리하는 데 사용됩니다.
GameModeBase는 싱글 플레이어 및 비멀티플레이어 환경을 위한 기본 클래스입니다. 만약 멀티플레이어 기능을 지원하는 게임을 개발하려면 GameMode 클래스를 사용해야 할 수 있습니다.
GameModeBase 클래스 생성 및 구현
GameModeBase를 C++에서 생성하고 사용하는 방법을 단계별로 설명하겠습니다.
1. GameModeBase 클래스 생성
Unreal Editor에서 C++ 클래스를 생성할 때 GameModeBase를 부모 클래스로 선택하여 새로운 게임 모드를 생성할 수 있습니다.
- Unreal Editor에서
File>New C++ Class를 선택합니다. GameModeBase를 부모 클래스로 선택하고, 클래스 이름을 지정합니다. 예를 들어MyGameModeBase라고 할 수 있습니다.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 클래스를 생성하고 구현한 후에는 이 게임 모드를 프로젝트에서 사용해야 합니다.
- 프로젝트 설정:
- Unreal Editor에서
Edit>Project Settings를 선택합니다. - 왼쪽 메뉴에서
Maps & Modes를 선택합니다. Default GameMode항목을MyGameModeBase로 설정합니다.
- 월드 설정:
- 특정 레벨에서만
MyGameModeBase를 사용하고 싶다면, 해당 레벨을 열고World Settings에서GameMode Override를MyGameModeBase로 설정합니다.
요약
GameModeBase는 게임의 규칙과 흐름을 제어하는 데 중요한 역할을 하는 클래스입니다. C++에서 이 클래스를 생성하고 확장함으로써, 여러분은 게임이 시작될 때의 행동, 플레이어 스폰 방법, 게임 승패 조건 등을 자유롭게 설정할 수 있습니다. GameModeBase를 통해 게임의 전반적인 로직을 제어하고, 필요에 따라 사용자 정의된 게임 모드를 제작할 수 있습니다.
