반응형
게임이 시작되려면 게임의 규칙, 플레이어, 플레이어가 조종하는 액터가 있어야 한다.
이는 각각 게임 모드, 플레이어 컨트롤러, 폰에 대응한다.
이 3가지 액터를 직접 제작하고 학습해 보자.
<1>. 게임 모드
직접 게임 모드와 폰을 제작&적용해 보자. (ABGameMode, ABPawn)
<1> - 1. 우리가 제작한 게임모드 적용하기
GameModeBase 클래스를 부모로 하는, Pawn 클래스를 부모로 하는 새로운 C++ 클래스를 생성한다.
→ 툴바의 '창' - '월드 세팅' 윈도우를 열고, Game Mode 섹션에 있는 GameMode Override 항목에서 ABGameMode 선택.
<1> - 2. 우리가 제작한 폰 적용하기
정의 파일에 생성자를 구현함(AABGameMode)
→ 게임 모드의 DefaultPawn 속성에 우리가 제작한 ABPawn을 지정함.(액터를 지정하는 게 아닌, 클래스 정보를 지정하는 것) → 플레이어가 여러 명이라면, 미리 만들어두는 것이 아니라, 플레이어가 입장할 때마다 클래스 정보를 기반으로 폰을 생성시키는 게 합리적임 → 'StaticClass'라는 스태틱 함수를 호출해서 가져올 수 있음.
//ABGameMode.h
class ARENABATTLE_API AABGameMode : public AGameModeBase
{
GENERATED_BODY()
public:
AABGameMode();
};
//ABGameMode.cpp
#include "ABGameMode.h"
#include "ABPawn.h"
AABGameMode::AABGameMode()
{
DefaultPawnClass = AABPawn::StaticClass();
}
※ C++의 클래스 이름은 접두사가 붙는다 → AABPawn
<2>. 플레이어의 입장
플레이어가 입장할 때, '폰'만 배정받는 것이 아닌, '플레이어 컨트롤러' 액터도 같이 배정받는다.
- 폰 : 실제 눈으로 보이는 꼭두각시
- 플레이어 컨트롤러 : 폰을 조종하는, 보이지 않는 액터
- 빙의(Possess) : '플레이어 컨트롤러'가 '폰'을 조종하는 행위
ABPlayerController라는 새로운 플레이어 컨트롤러 생성.
//ABGameMode.cpp
#include "ABPlayerController.h"
PlayerControllerClass = AABPlayerController::StaticClass();
반응형
'게임 개발 > 이득우의 언리얼 C++' 카테고리의 다른 글
[이득우의 언리얼 C++ 게임개발의 정석] #7. 애니메이션 시스템의 설계 (0) | 2024.06.17 |
---|---|
[이득우의 언리얼 C++ 게임개발의 정석] #6. 캐릭터의 제작과 컨트롤 (0) | 2024.06.13 |
[이득우의 언리얼 C++ 게임개발의 정석] #5. 폰의 제작과 조작 (0) | 2024.06.10 |
[이득우의 언리얼 C++ 게임개발의 정석] #3. 움직이는 액터의 제작 (1) | 2024.06.08 |
[이득우의 언리얼 C++ 게임개발의 정석] #2. 액터의 설계 (0) | 2024.06.07 |