GetRoomList() всегда возвращает пустой массив

#c# #unity3d #photon

#c# #unity3d #фотон

Вопрос:

Я отлично получал список комнат в OnReceivedRoomListUpdate функции, но в последнее время PhotonNetwork.GetRoomList() внутри этой функции всегда возвращается пустой массив.

Вот мой код:

 public class RefreshRooms : Photon.PunBehaviour {
   ...

   void Start () {
        PhotonNetwork.autoJoinLobby = true;
        ...
        Refresh();
    }

    // Update is called once per frame
    void Update () {
        // FYI: Here, PhotonNetwork.countOfPlayers gives the correct count of players currently in the lobby
    }
    ...
    public void Refresh()
    {
        ...
        PhotonNetwork.Disconnect();
        PhotonNetwork.ConnectUsingSettings("v3");
    }
    void OnJoinedLobby()
    {
        // Display 'Fetching Rooms List...' message
        ...
    }

    void OnReceivedRoomListUpdate()
    {
        // Here PhotonNetowrk.GetRoomList().Length always gives 0, even if there are rooms

        // Also, this function is getting called only once in the entire lifecycle

        // FYI: PhotonNetwork.insideLobby gives true here
        ...
    }
}
 

Я использую КАЛАМБУР v1.51 . Есть ли какие-либо изменения в API, которые мне нужно реализовать сейчас?

Комментарии:

1. Какова длина возвращаемого массива? Кроме того, пожалуйста, напишите, как вы используете эту функцию

2. @Programmer PhotonNetwork. GetRoomList().Длина равна 0, и, кроме того, OnReceivedRoomListUpdate() функция всегда вызывается один раз за весь жизненный цикл

Ответ №1:

Похоже, что-то изменилось в обновлении Photon. У многих людей возникла эта проблема после обновления Photon. Теперь вам нужно включить AutoJoinLobby перед вызовом эту функцию.

 PhotonNetwork.autoJoinLobby = true;
 

Комментарии:

1. Да, я видел несколько сообщений, поэтому Start() сразу же вставил их, но безуспешно

2. Попробуйте это в Awake функции. Дай мне знать. Также вам небезразличен вызов Refresh() , который отключается… Почему бы не прокомментировать и эту строку тоже?

3. Сделал это, все равно не повезло. Должен ли я удалить ConnectUsingSettings ?

4. Не удаляйте, просто прокомментируйте это

5. Я прокомментировал обе функции ConnectUsingSettings() and Disconnect() и установил значение PhotonNetwork.autoJoinLobby = true в Awake() функции, но теперь клиент вообще не подключается. Это потому, что я не обновил свой плагин (я все еще использую v1.51 )? Я не обновлял его, потому что все остальное, включая присоединение к game, RPC и even PhotonNetwork.countOfPlayers , работает отлично, и я не хочу, чтобы оно сломалось после обновления