如何在 Photon Unity 中获取封闭房间的名称?

Posted

技术标签:

【中文标题】如何在 Photon Unity 中获取封闭房间的名称?【英文标题】:How to get name of closed rooms in Photon Unity? 【发布时间】:2019-08-05 14:42:14 【问题描述】:

在获取房间列表时,我无法获取已关闭的房间。

RoomInfo[] rooms = PhotonNetwork.GetRoomList();

在此,当我遍历房间列表时,我只得到当前打开的房间,所以当我尝试创建一个新房间并且它等于已关闭房间的名称时,我收到一个错误,游戏 id 已经存在。如果我的房间是开放的,我总是可以在现有的房间长度列表中添加 1,但我需要关闭一个房间,这样其他玩家就无法在房间满时加入。在这样做时,我遇到了游戏 id 已经存在的问题。有没有办法获取所有房间的列表,无论它们是打开还是关闭,这样我就可以获得所有房间的长度,从而在所有其他房间都关闭时帮助我创建一个新房间?

这是我目前加入房间的代码:

 private void CreateOrJoinGame(eTable nameRoom)

    Invoke("ForceQuit", 8);
    panelLoad.SetActive(true);
    print("In progress joining or creating");
    RoomInfo[] rooms = PhotonNetwork.GetRoomList();
    PlayerSave.singleton.currentTable = nameRoom;
    for (int i = 0; i < rooms.Length; i++)
    
        if (rooms[i].Name.Contains(nameRoom.ToString()) && rooms[i].PlayerCount < rooms[i].MaxPlayers)
        
            PhotonNetwork.JoinRoom(rooms[i].Name);
            return;
        
    
    RoomOptions roomOption = new RoomOptions()  IsVisible = true, MaxPlayers = 5 ;
    PhotonNetwork.CreateRoom(nameRoom.ToString() + rooms.Length + 1, roomOption, TypedLobby.Default);

【问题讨论】:

【参考方案1】:

它在GetRoomList()&lt;summary&gt; 标签中说:

大厅也列出了封闭的房间,但它们不能加入。

确保您已连接到大厅。

【讨论】:

我连接到一个大厅,我确实得到了可用房间的列表,但由于某些奇怪的原因,它没有列出一个封闭的房间。不知道为什么 我的错。房间已满后,我将房间能见度设置为 false。纠正。谢谢!

以上是关于如何在 Photon Unity 中获取封闭房间的名称?的主要内容,如果未能解决你的问题,请参考以下文章

Photon matchmaking - 在 Unity 中使用 SQL 大厅加入或创建房间

比赛开始创建房间后,Photon Unity中所有人离开后房间会消失吗?

csharp 连接到Photon Unity Network并加入或创建房间的组件。

获取其他玩家实例化的游戏对象 Unity Photon

Unity Photon Network CustomPropeties 在加载新场景后未更新

Photon PUN 2+ Unity 仅在我在本地运行两个实例时工作