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