언리얼 게임플레이 프레임워크 클래스 학습하기
https://github.com/AcornPublishing/ue5-game-development
GitHub - AcornPublishing/ue5-game-development: C++ 스크립트를 활용한 언리얼 엔진 5 게임 개발 [C++ 기초부터
C++ 스크립트를 활용한 언리얼 엔진 5 게임 개발 [C++ 기초부터 실제 게임 개발까지, 언리얼 게임 개발의 모든 것] - AcornPublishing/ue5-game-development
github.com
언리얼 게임플레이 프레임워크 에는 자동으로 생성되는 PlayerController, GameModeBase와 추가해줘야하는 GameState, GameInstance라는 4개의 클래스가 포함되어 있다.
GameState, GameInstance를 만들자 중요한건 부모를 GameStateBase, GameInstance로 선택해야한다.
이름은 PagaeaGameState, PangaeaGameInstance로 한다.
PlayerController 클래스 살펴보기
언리얼이 기본적으로 만들어주는 클래스중 PangeaPlayerController가 있다. 입력처리와 카메라를 제어한다.
GameMode는 서버에만 존재하며 게임 구조적인 변수들을 관리할것이다., 레벨변환조건, 스폰지점, 최소인원. 종료조건
GameState는 변경되는 게임플레이 정보를 관리한다, 경과시간, 스코어, 미니맵상의 위치, 타이머
GameInstance는 온라인게임의 경우 클라이언트에만 존재한다. 현재실행중인 게임의 인스턴스를 보여주는 하이레벨 매니저
클래스인스턴스 획득하기
UWorld* World = GetWorld();
APlayerController* PlayerController = World->GetFirstPlayerController();
AGameModeBase* GameMode = World->GetAuthGameMode();
AGameStateBase* GameState = World->GetGameState();
UGameInstance* GameInstance = World->GetGameInstance();
GetWorld()함수를 통해 기본 클래스 인스턴스에 획득할수 있고 Cast를 통해자식 클래스 포인터로 변환할수 있다.
APangeaGameMode* pangeaGameMode = Cast<APangeaGameMode*>(gameMode);
APangeaGameStateBase* pangeaGameState = Cast<APangeaGameStateBase*>(gameState);
UPanggeaGameInstance* panGeaGameInstance = Cast<UPangeaGameInstance>(gameInstance);