Git
레포지토리 주소 : https://github.com/kjinwoo12/UE5Game_LeagueOfWatch
기준 태그 : 12_teamSelection_withDedicatedServer_bugfix
본문
이전글에서 서버와 클라이언트 간 동기화 문제로 정상 작동하지 않은 문제가 있었다. 두 번 중에 한 번 꼴로 유저 이름과 플레이어를 보여주는 UI가 나타나지 않았다. 원인은 PlayerState
가 클라이언트에 스폰되기 전에 서버에서 클라이언트로 모든 플레이어가 접속했다고 이벤트를 호출했기 때문이다. 모든 플레이어가 접속하면 UI를 띄워 PlayersState
에 있는 변수를 읽어와야 하는데 그 시점에 클라이언트에 PlayerState
가 스폰되었다는 보장이 없다.
참고
- PlayerState is invalid on client after GameMode::PostLogin()
- Player state from game state not working in ue5?
클라이언트에서 모든 PlayerState
가 BeginPlay
를 호출했을 때 준비완료 상태임을 서버에 알리고, 서버에서는 모든 클라이언트가 준비완료 상태일 때 모든 플레이어가 접속했다는 이벤트를 호출하면 버그를 고칠 수 있다.
이 버그를 고치면서 만든 GameMode
, GameState
, PlayerController
, PlayerState
는 따로 분리해 마켓플레이스에 올려도 괜찮을 것 같다.
'게임개발일지 > 리그오브워치' 카테고리의 다른 글
[리그오브워치개발일지] #14 MultiplayLibrary 플러그인 추가 (0) | 2024.01.10 |
---|---|
[리그오브워치개발일지] #13 유저 인터페이스 : 캐릭터 선택 (3) 선택 규칙 (0) | 2023.12.11 |
[리그오브워치개발일지] #12 유저 인터페이스 : 캐릭터 선택 (2) with 데디케이트 서버 (0) | 2023.11.17 |
[리그오브워치개발일지] #11 유저 인터페이스 : 캐릭터 선택 (1) (0) | 2023.11.02 |
[리그오브워치개발일지] 10 # Bugfix # 미니언 전투 버그 수정 (0) | 2023.10.26 |