- Home /
Question by
Ielboys · Apr 01, 2020 at 10:16 AM ·
multiplayermultiplayer-networkingpun
JoinRandomRoom failed. Client is on GameServer (must be Master Server for matchmaking) and ready. Wait for callback: OnJoinedLobby or OnConnectedToMaster.
I would really appreciate it if you guys could help. I think it has something to do with the callbacks but I am not sure what exactly.
using UnityEngine; using System.Collections; using Photon.Pun; using UnityEngine.UI; using Photon.Realtime; using UnityEngine.SceneManagement;
public class NetworkConnectionManager : MonoBehaviourPunCallbacks {
public Button BtnConnectMaster;
public Button BtnConnectRoom;
public bool TriesToConnectToMaster;
public bool TriesToConnectToRoom;
// Use this for initialization
void Start()
{
TriesToConnectToMaster = false;
TriesToConnectToRoom = false;
}
// Update is called once per frame
void Update()
{
BtnConnectMaster.gameObject.SetActive(!PhotonNetwork.IsConnected && !TriesToConnectToMaster);
BtnConnectRoom.gameObject.SetActive(PhotonNetwork.IsConnected && !TriesToConnectToMaster && !TriesToConnectToRoom);
}
public void OnClickConnectToMaster()
{
//Settings (all optional and only for tutorial purpose)
PhotonNetwork.OfflineMode = false; //true would "fake" an online connection
PhotonNetwork.NickName = "PlayerName"; //to set a player name
PhotonNetwork.AutomaticallySyncScene = true; //to call PhotonNetwork.LoadLevel()
PhotonNetwork.GameVersion = "v1"; //only people with the same game version can play together
TriesToConnectToMaster = true;
//PhotonNetwork.ConnectToMaster(ip,port,appid); //manual connection
PhotonNetwork.ConnectUsingSettings(); //automatic connection based on the config file in Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset
}
public override void OnConnectedToMaster()
{
base.OnConnectedToMaster();
TriesToConnectToMaster = false;
Debug.Log("Connected to Master!");
}
public override void OnDisconnected(DisconnectCause cause)
{
base.OnDisconnected(cause);
TriesToConnectToMaster = false;
TriesToConnectToRoom = false;
Debug.Log(cause);
}
public void OnClickConnectToRoom()
{
if (!PhotonNetwork.IsConnected)
return;
TriesToConnectToRoom = true;
//PhotonNetwork.CreateRoom("Peter's Game 1"); //Create a specific Room - Error: OnCreateRoomFailed
//PhotonNetwork.JoinRoom("Peter's Game 1"); //Join a specific Room - Error: OnJoinRoomFailed
PhotonNetwork.JoinRandomRoom(); //Join a random Room - Error: OnJoinRandomRoomFailed
}
public override void OnJoinRandomFailed(short returnCode, string message)
{
base.OnJoinRandomFailed(returnCode, message);
//no room available
//create a room (null as a name means "does not matter")
PhotonNetwork.CreateRoom(null, new RoomOptions { MaxPlayers = 20 });
}
public override void OnCreateRoomFailed(short returnCode, string message)
{
base.OnCreateRoomFailed(returnCode, message);
Debug.Log(message);
base.OnCreateRoomFailed(returnCode, message);
TriesToConnectToRoom = false;
}
public override void OnJoinedRoom()
{
base.OnJoinedRoom();
TriesToConnectToRoom = false;
Debug.Log("Master: " + PhotonNetwork.IsMasterClient + " | Players In Room: " + PhotonNetwork.CurrentRoom.PlayerCount + " | RoomName: " + PhotonNetwork.CurrentRoom.Name);
SceneManager.LoadScene("Network");
}
}
Comment
Your answer
Follow this Question
Related Questions
,Unity Multiplayer - Instantiate prefab 0 Answers
Photon RPC is not working in photon? 2 Answers
Callback for DNS entry error using Photon Networking 0 Answers