오늘 배운 것
- GameMode 이해하기
- GameMode는 게임의 전반적인 규칙과 흐름을 관리하는 핵심 클래스.
- 싱글 플레이 환경에서는 로컬에서만 동작하며, 플레이어의 Pawn 스폰, PlayerController 설정, 점수 계산, 승리/패배 조건 관리 등의 역할을 수행.
- GameState와 PlayerState를 활용해 전역 상태와 플레이어별 상태를 체계적으로 관리 가능.
- GameMode와 GameModeBase 비교
- GameMode: 멀티플레이 기능과 GameState/PlayerState 연동이 활성화된 복합적인 클래스.
- GameModeBase: 단순화된 형태로, 멀티플레이 로직을 포함하지 않으며, 싱글 플레이나 커스텀 멀티플레이 로직에 적합.
- GameMode 클래스 생성 및 설정
- C++ 클래스 생성: GameMode를 상속받은 클래스를 생성하고, 프로젝트 전역 또는 레벨별로 적용 가능.
- DefaultPawnClass 설정: 게임 시작 시 어떤 Pawn을 기본 캐릭터로 사용할지 지정.
- Pawn과 Character 클래스
- Pawn: 기본적인 조작 가능 객체로, 이동 로직이나 충돌 처리 등의 기능은 직접 구현해야 함. 특수한 로직 구현 시 적합.
- Character: 보행형 캐릭터 구현에 최적화된 클래스. 기본적으로 이동, 점프, 중력 등의 기능을 포함한
CharacterMovementComponent가 포함됨.
- Character 클래스 설정
- Skeletal Mesh: 캐릭터의 외형과 애니메이션을 설정하는 컴포넌트. 기본 제공 메시(SKM_Manny, SKM_Quinn)를 활용 가능.
- SpringArm과 CameraComponent: 3인칭 시점을 위해 SpringArm으로 카메라와 캐릭터의 거리를 유지하며, 카메라를 자유롭게 제어할 수 있음.
- GameMode 적용 및 테스트
- GameMode 설정을 통해
DefaultPawnClass에 우리가 만든 SpartaCharacter 또는 BP_SpartaCharacter를 지정.
- Player Start를 레벨에 배치해 캐릭터의 시작 위치를 설정.
- 게임 실행 시 지정된 캐릭터가 Player Start 위치에 스폰되고 조작 가능.