🗺️마인드맵
📒학습 내용
✨GameMode가 게임의 '규칙'을 정한다면, GameState는 게임의 '상태'를 기록하고 공유하는 역할을 한다고 보면 된다.
GameMode 이해하기
GameMode란?
언리얼에서 제공하는 클래스 ➡️ 총괄, 관리자 클래스(게임 매니저)
- GameMode는 GameModeBase의 자식 클래스.
- GameState, PlayerState 연동 등 다양한 기능 제공
- 멀티플레이 환경에서 필수적!
GameMode의 주요 기능과 책임
1 플레이어의 캐릭터 관리: Pawn/Character 스폰
- 게임이 시작될 때 (또는 플레이어가 리스폰될 때), DefaultPawnClass 또는 지정한 Pawn 클래스를 자동으로 스폰한다.
- 스폰된 Pawn을 플레이어가 조작할 수 있도록 PlayerController와 연동해주는 역할을 한다.
2 PlayerController 지정(빙의)
- 플레이어의 입력(키보드, 마우스, 게임패드 등)을 전달하고 처리하는 PlayerController가 어떤 클래스로 동작할지 설정한다.
3 게임 규칙 관리
- 점수 계산, 타이머, 라운드 제어, 난이도 등 게임 전반의 규칙을 정의하고 유지한다.
- 특정 점수 달성, 보스 몬스터 처치, 제한 시간 종료 등 승리/패배를 결정하는 조건을 관리한다.
- 승리 혹은 패배가 확정되면, 게임 오버 화면을 띄우거나 다음 레벨로 전환하는 식의 후속 처리를 담당한다.
4 GameState / PlayerState 사용
- GameState는 전체 게임 흐름 (타이머, 전역 변수 등), PlayerState는 플레이어별 정보 (체력, 점수 등)를 관리하는 용도로 쓰일 수 있다.
- 멀티플레이만큼 복잡하게 쓰진 않더라도, 상태 저장과 관리를 좀 더 체계적으로 하고 싶을 때 유용하다.
GameMode 적용하기
- 실제 게임 프로젝트에서 GameMode를 블루프린트로 감싸서 상속해서 쓰는 것이 좋다!
- 🤔왜? → 에디터 내에서 여러 파라미터 수정하기 편하다.
- Edit - Project Setting - Map&Mode - 게임모드 설정(만든 게임모드를 지정하면 된다)
- 게임 모드가 총괄하는 클래스
- HUD Class : 게임 화면 위에 표시되는 UI 요소들을 관리.
- PlayerController Class : 플레이어의 입력을 받아 게임 내 행동으로 변환.
- GameState: 게임의 현재 상태 정보를 저장하고 관리.
- PlayerState : 개별 플레이어에 대한 상태 정보를 저장.
- Spectator Class : 관전자 모드의 동작을 정의
GameState
- 주요 역할
- 게임 진행 상태 관리 : 게임의 현재 진행 상황을 추적하고 관리함.
- 점수 및 통계 관리 : 플레이어의 점수, 승패 기록 등 게임 통계를 저장하고 업데이트함.
- 타이머 및 라운드 정보 : 게임 라운드와 타이머와 같은 시간 관련 정보를 관리함.
- 클라이언트 동기화 : 게임 상태를 모든 클라이언트에 동기화하여, 모든 플레이어가 동일한 게임 상태를 보도록 함.
지역 GameMode 설정
- Window - World Setting - (디테일 창) - GameMode Override
- 전역 게임모드 설정과 달리 지역 게임모드 설정이 다르다면, 레벨(지역)에서 지정된 것이 우선으로 동작한다.
🟣오늘의 옵시디언 현황
'Dev. > UE 언리얼 엔진' 카테고리의 다른 글
[TIL_250203] EnhancedInputSystem으로 입력 매핑, 캐릭터 동작 구현하기 (0) | 2025.02.03 |
---|---|
[TIL_250131] Character 클래스를 활용한 캐릭터 구현하기(3인칭 카메라 설정, GameMode 설정) (0) | 2025.01.31 |
[TIL_250129] 회전 발판, 움직이는 장애물, 비물질 발판 구현하기 (2) - &충돌, 히트 감지 (1) | 2025.01.29 |
[TIL_250128] 회전 발판, 움직이는 장애물, 비물질(?) 발판 구현하기 (0) | 2025.01.28 |
[TIL_250127] [스파르타코딩클럽 후기] C++와 Unreal Engine으로 3D 게임 개발 - 리플렉션 시스템 이해하기! (0) | 2025.01.27 |