언리얼엔진(UE)

[UE] 숫자 야구 게임 #3 (Game State를 이용한 Turn 관리)

2h1824 2025. 3. 19. 23:12

1. 문제

  • 턴 개념이 없는 상태의 숫자 야구 게임을 Game State에 Turn 관련 변수를 추가하여 턴제로 수정하려고 함
  • Blue print로 새로운 Game State를 만들어 해당 현재 게임 모드에 Game State를 할당
  • 이전 기본 Game State Base로 설정되었을 때는 정상 작동하던 게임이 갑자기 아예 작동하지 않음

2. 해결 과정

  • 이전에 설정되어 있던 Game State의 경우 Game State Base로 분류되는 타입
  • 현재 새로 만든 Blue Print는 Game State를 상속받은 객체임
  • 아무래도 바뀐 타입에 문제가 있을 것이라 추정
  • 확인을 위해 Game State가 아닌 Game State Base를 상속 받도록 하여 새로운 Blue Print 클래스를 만들어 할당
    ㅡ> 바꾸고 나니 게임이 이전과 같이 정상 작동하는 것을 확인
    ㅡ> Game State, Game State Base 간의 차이가 불러온 문제로 보임

3. 정리

  • Game State Base가 아닌 Game State를 상속 받은 클래스를 사용하려고 해서 에러가 발생
  • Game State는 멀티플레이에 적합하게 만들어진 클래스라고 하지만 이게 문제는 아닌 것으로 보임
  • 문제는 Game State, Game Mode로 짝지어 사용하거나 Game State Base, Game Mode Base로 짝지어 사용해야 하는 것으로 판단
    ㅡ> 공식문서에 해당 내용은 찾지 못해서 추후 확실한 내용을 찾게 되면 추가할 예정

참고자료

https://forums.unrealengine.com/t/gamestate-vs-gamestatebase/83776/2

 

GameState vs. GameStateBase

I believe you need to be using GameMode and not GameModeBase in order to use GameState, but I’m not entirely sure. It was introduced because the old GameMode and GameState classes have quite a lot of bloat.

forums.unrealengine.com

https://cru6548.tistory.com/38

 

[Unreal] GameMode / GameState

+ 이 글은 작성자가 직접 공부하고 복습하며 작성한 글입니다. 만약 직접 작성하지 않았다면, 꼭 출처를 밝히겠습니다! + 이 글은 개인적인 공부를 바탕으로 작성되었기에, 틀린 부분이 있을 수

cru6548.tistory.com