플밍

PUN2 - OnRoomListUpdate

에페아 2020. 9. 30. 17:02

MonoBehaviourPunCallbacks에 들어있는 콜백 함수

로비에 있을 때 존재하는 룸을 갱신하기 위해서 사용합니다

public override void OnRoomListUpdate(List<RoomInfo> roomList)

이런식으로 생겨먹었고, 포톤에서 자동으로 실행시켜주고, 실행될 경우 roomList가 함께 전달됩니다


실행되는 경우는

-로비에 접속 시
-새로운 룸이 만들어질 경우
-룸이 삭제되는 경우
-룸의 IsOpen 값이 변화할 경우(아예 RoomInfo 내 데이터가 바뀌는 경우 전체일 수도 있습니다)

에 실행되는 것 같아요


저 매개변수로 넘어오는 roomList는

"현재 존재하는 방 전부" 가 아니라

"변동사항이 있는 방" 만 넘어옵니다.

로비에 들어왔는데 이미 만들어져있던 방이 3개가 있었다
->roomList의 리스트 안에 3개의 방이 건너옵니다

그러다가 방 하나가 만들어졌습니다
->만들어진 그 방 하나의 RoomInfo가 담긴 roomList가 건너옵니다

방 하나가 삭제됬습니다
->삭제된 그 방 하나의 RoomInfo가 담긴 roomList가 건너옵니다

어떤 방이 게임을 시작해서 IsOpen이 false로 바뀌었습니다
->false가 된 그 방 하나의 RoomInfo가 담긴 roomList가 건너옵니다

그래서 저 roomList로 건네받은 리스트를 그대로 현재 존재하는 방 리스트로 쓰기엔 무리가 있고,

따로 List<RoomInfo>를 만들어놓고 그 리스트를 계속 수정해서 갱신하는 방법을 쓰는 것이 좋을 것 같아요

반응형