Unity3D:PhotonNetwork.GetRoomList()无法获取任何RoomInfo

时间:2015-08-20 09:17:42

标签: c# unity3d photon

我正在尝试创建一个房间用户界面。我建了一个副本来测试我是否可以看到任何房间。但是,它没有收到任何空间。这是我的代码:

public class NetworkManager : Photon.MonoBehaviour
{
    public GameObject ScrollViewContent;
    public GameObject RoomListItem;
    public Text RoomNameInputField;
    void Start()
    {
        PhotonNetwork.ConnectUsingSettings("0.1");
    }

    void OnReceivedRoomListUpdate()
    {
        Debug.Log("OnReceivedRoomListUpdate");
    }

    void OnGUI()
    {
        Debug.Log("OnGUI");
        GUILayout.Label(PhotonNetwork.connectionStateDetailed.ToString());
        if (ScrollViewContent != null)
        {
            Debug.Log("ScrollViewContent");
            foreach (Transform child in ScrollViewContent.transform)
            {
                Debug.Log("Destroy");
                Destroy(child.gameObject);
            }
            foreach (RoomInfo game in PhotonNetwork.GetRoomList())
            {
                Debug.Log("RoomInfo");
                GameObject room = Instantiate(RoomListItem) as GameObject;
                room.GetComponentInChildren<Text>().text = game.name;
                room.transform.SetParent(ScrollViewContent.transform);
            }
            Debug.Log("ScrollViewContentEnd");
        }
    }


    public void CreateRoom()
    {
        if (!string.IsNullOrEmpty(RoomNameInputField.text))
            PhotonNetwork.CreateRoom(RoomNameInputField.text);
        //PhotonNetwork.CreateRoom(RoomNameInputField.text, new RoomOptions() { maxPlayers = 2,isVisible=true }, null);
    }
}

所有公共变量都通过检查器和控制台设置显示“ScrollViewContent”和“ScrollViewContentEnd”,这意味着它们之间不应该有异常。

我尝试了两种方法来创建空间(两种方式都可以成功创建空间)并将OnGUI()代码放在OnReceivedRoomListUpdate()中。然而,没有任何东西出现,甚至在控制台中都没有“RoomInfo”。

代码中是否遗漏了某些内容?

1 个答案:

答案 0 :(得分:1)

我发现问题所在。默认设置仅在没有连接默认大厅的情况下加入服务器。因此,没有房间清单。

解决方案是创建一个大厅并加入它或加入默认大厅。