develop-note/Unreal_BattleGround

Customize Skin 동기화 버그

디벨로프드림 2019. 8. 20. 20:49
반응형

Lobby 화면에서 PlayerCharacter의 스킨을 설정한뒤 저장(Save)하여 나중에 

Match나 Dedicated Server에 들어갔을때 Load Game from Slot 을 통해 

Skin 데이터를 불러와서

동기화를 시키는데 모든 플레이어에게 동기화 되버리는 버그 발생

Skin Customize 화면
저장해둔 Skin 데이터를 Load 하여 동기화 시키는 로직

원인 : 서버/GameMode 에서 PlayerCharacter를 Spawn 시킬때 동기화를 시작한다

이때 GetPlayerController(PlayerIndex) 함수를 썼는데

클라이언트에서는 0번이 자기자신의 컨트롤러를 뜻하지만, 서버에서는 0번이 실제 0번째 플레이어를 뜻하므로

0번째 플레이어 컨트롤러의 Skin 데이터를 적용한다가 되버린다

 

 

 

 

해결

동기화 로직을 서버/GameMode 에서 PlayerCharacter/BeginPlay 에서 처리하도록 옮겼다

 

Load Game from Slot 을 통해 데이터를 불러온뒤 PlayerController 객체에 변수로 저장해둠
PlayerCharacter/BeginPlay, 이때 GetController를 통해 올바른 데이터를 가진 컨트롤러를 가져온다

 

 

 

반응형