Unity3D: PhotonNetwork.GetRoomList() 无法获取任何 RoomInfo
Unity3D: PhotonNetwork.GetRoomList() cannot get any RoomInfo
我正在尝试创建房间 UI。我建立了一个副本来测试我是否可以看到任何房间。但是,它没有收到任何房间。这是我的代码:
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);
}
}
所有 public 变量都是通过检查器设置的,控制台显示 "ScrollViewContent" 和 "ScrollViewContentEnd",这意味着它们之间应该没有例外。
我尝试了两种创建房间的方法(两种方法都可以成功创建房间)并将OnGUI()代码放在OnReceivedRoomListUpdate()中。但是,没有任何显示,甚至 "RoomInfo" 在控制台中也没有显示。
代码中是否遗漏了什么?
我找出问题所在。默认设置只加入服务器不加入默认大厅。因此,没有房间列表。
解决方案是创建一个大厅并加入它,或者加入默认大厅。
我正在尝试创建房间 UI。我建立了一个副本来测试我是否可以看到任何房间。但是,它没有收到任何房间。这是我的代码:
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);
}
}
所有 public 变量都是通过检查器设置的,控制台显示 "ScrollViewContent" 和 "ScrollViewContentEnd",这意味着它们之间应该没有例外。
我尝试了两种创建房间的方法(两种方法都可以成功创建房间)并将OnGUI()代码放在OnReceivedRoomListUpdate()中。但是,没有任何显示,甚至 "RoomInfo" 在控制台中也没有显示。
代码中是否遗漏了什么?
我找出问题所在。默认设置只加入服务器不加入默认大厅。因此,没有房间列表。
解决方案是创建一个大厅并加入它,或者加入默认大厅。