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
를 통해 게임의 전반적인 로직을 제어하고, 필요에 따라 사용자 정의된 게임 모드를 제작할 수 있습니다.