GameMode 클래스
게임매니저 클래스처럼 게임의 총괄 관리자같은 역할을 한다
- 플레이어 캐릭터 관리 - Pawn 클래스 or Character 클래스
- PlayerController 클래스를 캐릭터에 빙의시킴
- 게임 규칙 관리 - 로직(함수)
- GameState 클래스와 PlayerState 클래스 관리
- GameState: 게임의 전역 데이터, 예를 들어 점수 등을 관리
- PlayerState: 개별 캐릭터마다의 데이터. 보통 멀티 게임에서 사용

게임모드베이스와 게임모드의 차이
- 게임모드베이스
- 단순한 게임용
- 멀티플레이 로직이 전혀 없음
- 초심자용
- 제공하는 기능이 많지 않음
- 게임모드
- 멀티플레이 기능 제공
- GameState, PlayerState 기능 연동되어 있음
GameMode로 클래스를 만들어준다.
이후, 이를 상속받아 블루프린트 클래스를 만들어준다. 에디터 내에서 파라미터 수정이 편리하고 유용한 기능이 많기 때문이다.


게임모드를 적용하는 방법
1. Editor-> Project settings-> Mas & Modes에서 설정하기


- Default Pawn Class: 어떤 캐릭터로 플레이할 것인지 결정
- HUD Class: UI 결정
- Player Controller: 입력을 조정하는 클래스
- Game State Class, Player State Class: 데이터 관리
- Spectator Class: 제3자의 관점으로 지켜보는 시점의 클래스
이렇게 저장하면 모든 레벨에 적용된다.
2. World Settings에서 레벨별로 저장하기


레벨의 게임모드가 우선이고, 전역 게임모드는 후순위다. 레벨에 게임모드를 지정하면 해당 게임모드가 적용된다.

캐릭터 클래스와 폰 클래스의 차이
둘 다 사용자가 조작할 수 있는 클래스들이다.
- 폰
- 플레이어나 AI 둘 다 소유 가능
- 캐릭터의 부모가 되는 상위 클래스
- 컴포넌트가 붙어있지 않음
- 아무것도 없기 때문에 이동 로직이나 물리 등을 다 구현해주어야 함.
- 캐릭터
- Charater Movement에 걷기, 달리기, 점프 등이 적용되어있음
- 이족보행 인간형의 캐릭터만 만들 수 있음
- 자동차나 동물은 폰 클래스로 만드는 것이 낫다.
C++ 클래스로 캐릭터 생성



에디터에서 Character를 상속받은 블루프린트 클래스를 만든다.


- 캡슐 컴포넌트
- 충돌체의 범위를 결정(콜리전 컴포넌트)
- 애로우 컴포넌트
- 캐릭터의 정면 방향을 알려줌
- 메시
- 스켈레탈 메시 컴포넌트
- 캐릭터 무브먼트
- 캐릭터의 이동, 점프 등 다양한 로직을 포함한 컴포넌트

스켈레탈 메시

언리얼에서 보통 캐릭터의 정면은 X축이다. 메시를 만들 때 캐릭터가 Y축을 보고 있는 경우가 많으므로 Rotation을 -90도로 주어서





이렇게 조정을 하고 C++에서 카메라, 스프링 암 컴포넌트를 붙여줘야한다.

헤더가 없기 때문에 USpringArmComponent, UCameraComponent는 선언 시 에러가 난다. 그러나 헤더를 Character.h 파일에다 가져오면 불필요한 연산이 발생하기 때문에, 임시 선언만 해주고 cpp 파일에서 인클루드 해주기로 한다.





'게임 개발 > 학습 일지' 카테고리의 다른 글
| 언리얼 게임 개발 - 차량 에셋에 바퀴 굴러가는 애니메이션 추가하기 (0) | 2026.04.17 |
|---|---|
| 언리얼 C++ - Enhanced_input_System을 활용한 입력 매핑 구현하기 (0) | 2026.04.16 |
| TA 코스 2주차 과제 - 마법 구체 만들기 (0) | 2026.04.15 |
| 언리얼 내배캠 과제 6번- 회전 발판과 움직이는 장애물 (0) | 2026.04.14 |
| TA 코스 2주차 정리 (0) | 2026.04.13 |