언리얼에서 게임을 만들기 위해서는 GameMode를 설정해야 한다. 설정하는 이유는 다양하지만, 기본적으로 해야 하는 것이라고 생각한다. 추후 조사하여 확인할 예정이다.
편집 → 프로젝트 세팅에 들어가면 GameMode를 설정할 수 있다. 여기서 C++ 코드를 컴파일하면 현재 설정된 클래스들을 볼 수 있다.
- GameInstrance: 레벨 변경 또는 게임 세션 전반에 걸쳐 유지돼야하는 고수준 데이터를 관리한다. 기본적으로 전역적으로 접근 가능한 UObject로, 게임에서 유지해야하는 데이터를 모두 저장할 수 있다. 여기에는 플레이어 점수, 다른 레벨이나 게임 세션 전반에 걸처 공유해야 하는 기타 정보 등이 포함된다.
- GameMode: 플레이어가 게임에 참가하는 방법, 레벨간 전환 방법, 기타 게임별 설정과 같은 게임 규칙을 제어하는 클래스다. 일반적으로 게임의 현재 상태를 관리하는 GameState클래스와 함께 사용된다. 두 클래스를 함께 사용하면, 개발자가 언리얼 엔진에서 복잡하고 사용자 정의된 게임 메카닉을 만들 수 있다. AGameMode클래스는 AGameModeBase를 확장해 게임 규칙과 승패 조건과 같은 멀티플레이 시스템을 향상시키는 기능을 추가한다.
- PlayerController플레이어의 입력 장치로 들어온 입력을 관리하고, 플레이어 캐릭터에게 명령을 보내 해당 동작을 수행한다.
- PlayerState: 게임 상태에 대한 정보를 가지고 있는 클래스다. 모든 플레이어가 동일한 정보에 접근할 수 있도록 서버와 클라이언트 모두에 존재한다.
*주의사항
GameMode의 스크립트를 수정하여 위와 같은 컴파일 버튼을 눌러도 프로젝트 세팅이 갱신되지 않는다. 이러한 문제를 해결하는 간단한 방법은 GameMode 생성자를 주석 처리한 후 컴파일한 뒤, 주석을 제거하고 다시 컴파일하면 인터페이스가 갱신된 것을 확인할 수 있다.
'Unreal > 언리얼 엔진 5로 개발하는 멀티플레이어 게임(Book)' 카테고리의 다른 글
[Unreal] US_Character.h 생성자 코드 분석(카메라) (0) | 2025.03.21 |
---|---|
[Unreal] US_GameMode Class 생성자 코드 분석 (0) | 2025.03.21 |
[Unreal] 첫 번째 멀티플레이어 환경 설정 (0) | 2025.03.18 |
[Unreal] 프로젝트 프로토타입으로 멀티플레이어 시스템 테스트 (0) | 2025.03.18 |
[Unreal] Blueprints(Switch Has Authority Node) (0) | 2025.03.18 |