나는 오늘 FPS 멀티플레이 게임에서 상황판(스코어보드)을 만들었다.
Unity와 Fusion을 이용하여 플레이어의 킬, 데스, 골드를 실시간으로 보여주는 상황판 UI를 어떻게 구현했는지
정리해 보겠다.
우선 사용한 스크립트들이다.
StandardSpawner: 플레이어와 UI매니저를 생성하는 네트워크 스폰 담당
ScoreboardManager: 점수 데이터를 관리하고 UI 갱신을 담당하는 네트워크 싱글톤
UIScoreboardView: 실제 화면에 보여지는 UI 요소들 관리
PlayerScoreData: 각 플레이어의 킬/데스/골드를 담는 네트워크 구조체
먼저 퓨전에서는 INetworkStruct를 구현한 구조체로 네트워크 동기화 가능한 데이터를 정의할 수 있다.
다음은 스코어보드매니저 스크립트다.
서버에서 점수 데이터는 NetworkDictionary로 관리되고, RPC_Addkill() 등을 통해 수정된다.
상황판 UI갱신은 RPC_AddPlayerRow() 등을 통해 모든 클라이언트에 전파된다.
스탠다드스폰 스크립트에서는 ScoreboardManager 프리팹을 서버만 스폰하고,
플레이어가 들어올 때 CharacterInfo를 가져와 UI에 반영한다.
UIScoreboardView는 실제 UI처리를 하는 스크립트이다.
이 구조를 통해 얻는 장점으로는
점수 데이터는 서버에서만 관리하므로 신뢰성이 높다.
UI갱신은 RPC로 브로드캐스트되어 실시간으로 반영된다.
INetworkRunnerCallbacks는 책임 분리를 통해 깔끔하게 유지된다.
'TIL' 카테고리의 다른 글
게임 개발자 기술면접 질문 (3) | 2025.04.25 |
---|---|
UIScoreboardView(점수판, 상황판) 트러블슈팅 (2) | 2025.04.24 |
Unity Fusion 멀티플레이 FPS ScoreboardUI 구현하기 (2) | 2025.04.22 |
싱글톤 패턴에 대하여 (4) | 2025.04.21 |
게임회사 면접 질문에 대한 답변 (3) | 2025.04.18 |