2015-09-04 6 views
0

В настоящее время я пытаюсь создать систему matchmakings для моей игры с сетевой системой фотонов. Я уже могу создавать комнаты и вступать в них, однако, если я пытаюсь использовать функцию PhotonNetwork.getRoomList(), массив всегда пуст. После строки состояния сети я знаю, что я в стандартном лобби.Photon Unity GetRoomList() всегда пуст

Мой код:

void fillBrowser() 
{ 
    Debug.Log("Checking for Rooms"); 
    if(PhotonNetwork.insideLobby) 
    { 
     Debug.Log("Inside a Lobby"); 
     Debug.Log(PhotonNetwork.GetRoomList().ToString()); 
    } 
} 

Возвращает:

Проверка для помещений

Внутри Лобби

RoomInfo []

ответ

1

Выход RoomInfo[] говорит, что он возвращается массив от RoomInfo s. Вы получаете этот результат, потому что вы вызывали ToString() на массив. Сохраните возвращаемый RoomInfo[] переменной, проведите через них и посмотрите, какую информацию они содержат.

void fillBrowser() 
{ 
    Debug.Log("Checking for Rooms"); 
    if(PhotonNetwork.insideLobby) 
    { 
     Debug.Log("Inside a Lobby"); 
     var rooms = PhotonNetwork.GetRoomList(); 
     foreach(var room in rooms) 
      Debug.Log("Found room: " + room.ToString()); 
    } 
} 
+0

Я опробовал ваш код и до сих пор получил только чек для номеров и внутри лобби. Кто-нибудь знает, если метод, если функция GetRoomList устарела? – Mineorbit

+0

Затем перечисление, которое возвращает 'GetRoomLists()', должно быть пустым. Запишите 'rooms.Length' на консоль, чтобы убедиться. Возможно, это также проблема, связанная с http://forum.unity3d.com/threads/pun-photonnetwork-getroomlist-problem.311300/ –

+0

Когда я пытаюсь ее контролировать, она всегда остается нулевой. Я запускаю комнату во втором клиенте и проверяю список на втором клиенте. Возможно, мой код CreateRoom может быть ошибкой: RoomOptions roomOptions = new RoomOptions() {isVisible = false, maxPlayers = 4}; PhotonNetwork.CreateRoom ("Test", roomOptions, TypedLobby.Default); – Mineorbit

0
using System.Linq; 

Debug.Log(string.Concat(GetRoomList().Select(x => x.name + "\n\r").ToArray())); 

или

using System.Linq; 

GetRoomList().ToList().ForEach(x => { Debug.Log(x.name); }); 
0

К сожалению м ответ немного поздно .. просто добавить "PhotonNetwork.autoJoinLobby = истина;" в пустоте Awake() функция и все будет работать гладко;)