Photon не находит комнаты

Photon не находит комнаты

Сообщение valera0141 22 мар 2017, 08:30

Подскажите, куда копать. Метод(поправьте, если ошибся) PhotonNetwork.GetRoomList() не находит созданные комнаты. В чём может быть дело?

Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using Hashtable = ExitGames.Client.Photon.Hashtable;

public class ConnectMenu : Photon.MonoBehaviour
{
    public GameObject playerPrefab;

    public string roomName = "PlayerRoom";
    public string mapName = "Player";

    RoomInfo[] roomsList = new RoomInfo[0];

    string roomVersion = "Alpha HL2DM v0.1";

    IEnumerator JoinOrCreate(string _roomName, string _mapName, int maxPlayers, bool gameMode, int timeRound)
    {
        while (!PhotonNetwork.connected)
        {
            if (PhotonNetwork.connectionState != ConnectionState.InitializingApplication && PhotonNetwork.connectionState != ConnectionState.Connecting &&
                PhotonNetwork.connectionState != ConnectionState.Disconnecting && PhotonNetwork.connectionState != ConnectionState.Connected)
            {

                PhotonNetwork.ConnectUsingSettings(roomVersion);
            }
            yield return null;
        }

        yield return new WaitForSeconds(0.5f);

        //PhotonNetwork.playerName = "Player" + Random.Range(0, 9999).ToString();

        if (PhotonNetwork.connected)
        {
            Hashtable roomProperties = new Hashtable();
            roomProperties["mapName"] = _mapName;
            roomProperties["gameMode"] = gameMode;
            roomProperties["gameTime"] = timeRound;

            string[] exposedProps = new string[3];
            exposedProps[0] = "mapName";
            exposedProps[1] = "gameMode";
            exposedProps[2] = "gameTime";

            RoomOptions roomOptions = new RoomOptions();
            roomOptions.CleanupCacheOnLeave = true;
            roomOptions.IsOpen = true;
            roomOptions.IsVisible = true;
            roomOptions.MaxPlayers = (byte)maxPlayers;
            roomOptions.CustomRoomProperties = roomProperties;
            roomOptions.CustomRoomPropertiesForLobby = exposedProps;

            PhotonNetwork.JoinOrCreateRoom(_roomName, roomOptions, null);
        }
        else yield return null;
    }

    void Start()
    {
        DontDestroyOnLoad(this);
        this.StopAllCoroutines();
    }

    void Update()
    {
    }

    void OnGUI()
    {
        if (GUI.Button(new Rect(50, Screen.height - 100, 100, 25), "Создать"))
            StartCoroutine(JoinOrCreate(roomName, mapName, 16, false, 30));

        /* это будет кнопкой подключения, но пока не используется
        if (roomsList.Length > 0)
            if (GUI.Button(new Rect(50, Screen.height - 75, 100, 25), "Подключиться к " + roomsList[].Name))
                StartCoroutine(JoinOrCreate(roomsList[].Name, (string)roomsList[].CustomProperties["mapName"], roomsList[].MaxPlayers,
                    (bool)roomsList[].CustomProperties["gameMode"], (int)roomsList[].CustomProperties["gameTime"]));
        */


        if (GUI.Button(new Rect(50, Screen.height - 50, 100, 25), "Поиск"))
            OnReceivedRoomListUpdate();

        GUI.Label(new Rect(15, 15, Screen.width, 25), "Количество найденных серверов: " + roomsList.Length);
    }

    void OnJoinedRoom()
    {
        print("Done joining/creating new room");
        PhotonNetwork.isMessageQueueRunning = false;
        SceneManager.LoadScene((string)PhotonNetwork.room.CustomProperties["mapName"]);
    }

    void OnReceivedRoomListUpdate()
    {
        roomsList = PhotonNetwork.GetRoomList();
        Debug.Log(roomsList.Length);
    }

    void OnLevelWasLoaded(int level)
    {
        if (level > 0)
        {
            PhotonNetwork.Instantiate(playerPrefab.name, Vector3.up, Quaternion.identity, 0);
        }
    }
}
 
valera0141
UNец
 
Сообщения: 27
Зарегистрирован: 04 май 2014, 21:14

Re: Photon не находит комнаты

Сообщение valera0141 22 мар 2017, 08:59

Так тоже не находит
Синтаксис:
Используется csharp
IEnumerator FindRooms()
    {
        while (PhotonNetwork.connected)
        {
            if (PhotonNetwork.connectionState != ConnectionState.Disconnecting)
            {
                PhotonNetwork.Disconnect();
            }
            yield return null;
        }

        while (!PhotonNetwork.connected)
        {
            if (PhotonNetwork.connectionState != ConnectionState.InitializingApplication && PhotonNetwork.connectionState != ConnectionState.Connecting &&
                PhotonNetwork.connectionState != ConnectionState.Disconnecting && PhotonNetwork.connectionState != ConnectionState.Connected)
            {
                PhotonNetwork.ConnectUsingSettings(roomVersion);
            }
            yield return null;
        }

        yield return new WaitForSeconds(0.75f);

        roomsList = PhotonNetwork.GetRoomList();
        Debug.Log(roomsList.Length);
    }
 
valera0141
UNец
 
Сообщения: 27
Зарегистрирован: 04 май 2014, 21:14

Re: Photon не находит комнаты

Сообщение IDoNotExist 22 мар 2017, 11:23

Перед коннектом попробуйте прописать PhotonNetwork.autoJoinLobby = true;
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: Photon не находит комнаты

Сообщение valera0141 22 мар 2017, 17:47

IDoNotExist писал(а):Перед коннектом попробуйте прописать PhotonNetwork.autoJoinLobby = true;

Не помогло
valera0141
UNец
 
Сообщения: 27
Зарегистрирован: 04 май 2014, 21:14

Re: Photon не находит комнаты

Сообщение Aleksey 18 июн 2017, 17:12

valera0141 писал(а):Подскажите, куда копать. Метод(поправьте, если ошибся) PhotonNetwork.GetRoomList() не находит созданные комнаты. В чём может быть дело?


Ты заходишь в фотон только тогда, когда нажимаешь кнопку "создать" .
По кнопке Поиск ты не подключился к фотону , а значит и нет список комнат . А также в мастерСервере(void OnConnectedToMaster(){}) списка комнат тоже нет . Надо после подключения к фотону проверить перешел ли ты в лобби(геймСервер). Вот там и будет список комнат
Тебе нужно в старте прописать PhotonNetwork.ConnectUsingSettings(roomVersion);
Продукты на тему онлайна в Ассет Сторе
_https://www.assetstore.unity3d.com/en/# ... sher:21589
Аватара пользователя
Aleksey
UNIт
 
Сообщения: 56
Зарегистрирован: 17 фев 2015, 16:09


Вернуться в Photon

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2