namespace MatchState { const FName EnteringMap = FName(TEXT("EnteringMap")); const FName WaitingToStart = FName(TEXT("WaitingToStart")); const FName InProgress = FName(TEXT("InProgress")); const FName WaitingPostMatch = FName(TEXT("WaitingPostMatch")); const FName LeavingMap = FName(TEXT("LeavingMap")); const FName Aborted = FName(TEXT("Aborted")); }
- EnteringMap 맵에 진입 중.
서버 맵 로드.- WaitingToStart 게임 시작 대기 중.
플레이어 소집- InProgress 게임 플레이 진행 중.
- WaitingPostMatch 게임이 끝났지만 맵을 떠나기 전에 대기하는 상태.
- LeavingMap 맵을 떠나는 중
다른 맵 로딩 준비- Aborted 게임이 비정상적으로 중단됨.
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="GameMode") uint32 bDelayedStart : 1;Match 자동 시작 여부
UFUNCTION(BlueprintCallable, Category=Game) ENGINE_API virtual void RestartPlayerAtPlayerStart(AController* NewPlayer, AActor* StartSpot);Paramter
- NewPlayer
리스타트할 플레이어의 컨트롤러입니다.- StartSpot
플레이어가 리스타트될 위치를 나타내는 AActor 객체입니다.AGameModeBase 함수이며 Unreal Engine에서 플레이어를 지정된 시작 지점으로 리스타트하는 함수입니다.
UFUNCTION(BlueprintCallable, Category="Game") ENGINE_API virtual void StartMatch();매치를 시작할 시 실행되며 MatchState::WaitingToStart 를 MatchState::InProgress 로 전환합니다.
bDelayedStart 가 true 라면 자동으로 실행되며 false 라면 직접 실행하여야 합니다.
ENGINE_API virtual void SetMatchState(FName NewState);Paramter
NewState
Match 의 새로운 상태MatchState 값을 변경하며 이에 따른 이벤트와 콜백을 호출합니다
UFUNCTION(BlueprintCallable, Category="Game") ENGINE_API virtual void RestartGame();현재 매치를 재시작하여 게임의 흐름을 리셋하고, 매치의 초기 상태로 돌아갑니다.