본문 바로가기

공부/Unreal5

Unreal GameModeBase와 GameMode

GameModeBase

게임모드가 갖게될 모든 기본 기능이 포함되있음

게임시작시 플레이어폰을 실제로 스폰하는것을 처리

다시 시작하거나 리스폰하고 게임을 전체적으로 재시작할때 처리

 

GameMode

Match State를 정의

Handling match States처리

Custom Match State도 추가가 가능

 

대부분의 언리얼 튜토리얼과 게임들은 이러한 매치게임이 필요하지않다.

그러나 매치가있을경우 게임모드가 더 좋음

 

matchState라는 네임스페이스가 존재합니다.

  • EnteringMap (맵 진입)은 초기 상태입니다. 액터 틱은 아직 이루어지지 않고 있으며, 월드는 제대로 초기화되지 않은 상태입니다. 모두 완전히 로드되면 다음 상태로 전환될 것입니다.
  • WaitingToStart (시작 대기중)가 그 다음 상태로, 여기에 들어갈 때 HandleMatchIsWaitingToStart (경기 시작 대기중 처리)가 호출됩니다. 액터 틱은 이루어지지만, 플레이어는 아직 스폰되어있지 않습니다. ReadyToStartMatch (경기 시작 준비)가 true 를 반환하는 경우, 또는 StartMatch 가 호출된 경우 다음 상태로 전환됩니다.
  • InProgress (진행중)은 게임의 주요 부분이 일어나는 상태입니다. 여기에 들어갈 때 HandleMatchHasStarted (경기 시작 처리)가 호출되며, 그 후 모든 액터에서 BeginPlay (플레이 시작)을 호출합니다. 이 시점에서 일반적인 게임플레이가 진행됩니다. ReadyToEndMatch (경기 종료 준비)가 true 를 반환하거나 EndMatch (경기 종료)가 호출되는 경우 경기가 다음 상태로 전환됩니다.
  • WaitingPostMatch (경기 후 대기)는 끝에서 두 번째 상태로, 여기에 들어설 때 HandleMatchHasEnded (경기 종료 처리)가 호출됩니다. 액터 틱은 여전히 일어나지만 새로운 플레이어는 참가할 수 없습니다. 맵 이동이 시작되면 다음 상태로 전환됩니다. (WatitingToStart와 비슷하다)
  • LeavingMap (맵 떠나기)는 일반적인 흐름의 마지막 상태로, 여기에 들어설 때 HandleLeavingMap (맵 떠나기 처리)를 호출합니다. 경기가 이 상태에 머물러있다가 맵 전환이 일어나면 EnteringMap (맵 진입) 상태로 돌아갑니다.
    즉 맵종료
  • Aborted (중단된)은 실패 상태로, AbortMatch (경기 중단)을 호출하면 시작됩니다. 복구할 수 없는 오류가 발생했을 때 설정됩니다.

 

주요 함수

HasMatchStarted() 매치가 시작됬는지 확인

HasMatchEnded() 경기가 종료되었는지 확인

GetMatchState() 경기상태 가져오기

SetMatchState() 상태변경

OnMatchStateSet() 상태변경시 업데이트

StartMatch() 수동으로 경기를 시작

RestartGame()

등등

https://docs.unrealengine.com/4.26/ko/InteractiveExperiences/Framework/GameMode/