UE에서 게임을 만드는 작업은
크게 두 가지로 나눠볼 수 있다.
이 때, gameplay 설계에 관해서 UE는 Gameplay Framework를 제공한다.
GameMode는 게임 진행에 참고해야 할 핵심요소로서 게임의 틀을 잡아주는 역할을 한다.
Pawn을 생성하여 전달한다.GameMode는 플레이어가 입장할 때 PlayerController 액터를 함께 해벚앟ㄴ다.
현실 세계의 플레이어를 대변하는 무형의 액터로, 플레이어가 폰을 조종하는 역할을 맡으며,
이밪ㅇ 시 배정되는데 배정된 PlayerController는 변경할 수 없다.
Pawn은 PlayerController에게 조종을 당하는 액터로, 플레이어가 PlayerController를 통해 폰에 제어권을 갖고 조종하는 것을 Possess라고 한다.
UE 에디터에서 Play 버튼을 누르면, 해당 레벨에 입장하여 다음 순서로 액터 생성과 게임플레이 설정이 갖춰진다.
이에 더불어 플레이어가 게임에 입장하는 것을 Login으로 명명하여,
로그인 완료 시, GameMode에서 PostLogin() 이벤트 함수가 호출된다.
이 이벤트 함수에서 pawn을 생성하고, pawn에 대한 possess 작업이 일어난다.
cf. C++가 아닌 BP로 만들어진 클래스를 사용하려고 할 때,
// set default pawn class to our Blueprinted character
static ConstructorHelpers::FClassFinder<APawn> BP_Pawn_C(TEXT("/Game/../../../[이름].[이름]_C"));
if (PlayerPawnBPClass.Class != NULL)
{
DefaultPawnClass = BP_Pawn_C.Class;
}
ConstructorHelpers의 FClassFinder를 사용하고 경로에 대해 '_C' 접미사를 붙여 가져와야 한다.