如何在 Unity 中列出房间?(双关语2)

Seb*_*cía 7 c# unity-game-engine photon

我需要列出我的大厅场景中的 romos。目前,这是我使用过的代码,但我不知道为什么它不起作用。这是正确的方法吗?

public override void OnRoomListUpdate(List<RoomInfo> roomList)
     {
         print(roomList.Count + " Rooms");
         base.OnRoomListUpdate(roomList);
         foreach (var Item in roomList)
         {
             RoomName = Item.Name;
             PlayerAmount = Item.PlayerCount;
             MaxPlayers = Item.MaxPlayers;
             PhotonNetwork.Instantiate("RoomPrefab", transform.position, transform.rotation);
             RoomPrefab.transform.Find("RoomName").GetComponent<Text>().text = RoomName;
             RoomPrefab.transform.Find("PlayerInt").GetComponent<Text>().text = PlayerAmount.ToString();
             if(MaxPlayers == 4)
             {
                 GameObject.Find("IPlayerA").GetComponent<Image>().sprite = Four;
             }
             else if (MaxPlayers == 2)
             {
                 GameObject.Find("IPlayerA").GetComponent<Image>().sprite = Two;
             }
             else if (MaxPlayers == 3)
             {
                 GameObject.Find("IPlayerA").GetComponent<Image>().sprite = Three;
             }
             RoomPrefab.transform.SetParent(ScrollView.transform, false);
         }
     }
Run Code Online (Sandbox Code Playgroud)

我需要指定我正在使用 Photon 的 PUN2,因此 GetRoomList 将不起作用。

小智 2

PhotonNetwork.GetRoomList() 在 PUN2 中消失了。您可以从 ILobbyCallbacks.OnRoomListUpdate(List roomList) 回调获取房间列表和更新。您可以选择缓存它、更新它并在需要时清除它。

您还可以在此处检查从 PUN 到 PUN2 的更新 https://doc.photonengine.com/en-us/pun/v2/getting-started/migration-notes