Can't see other server with network matchmaking
I was using Photon and everything was fine, but now I'm starting to use the built-in system, because the new one seems to be as good and easy to use, so why bother using a plugin ? But I'm struggling with basic stuff.
So anyway I'm starting really simple, I just want to see if there are other server, if not create one.
So I have a Networkmanager object with this script that I've mostly copied from the Unity website : http://docs.unity3d.com/ScriptReference/Networking.Match.NetworkMatch.html
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
using UnityEngine.Networking.Types;
using UnityEngine.Networking.Match;
using System.Collections.Generic;
public class NetworkManager : MonoBehaviour {
List<MatchDesc> matchList = new List<MatchDesc>();
bool matchCreated;
NetworkMatch networkMatch;
void Awake()
{
DontDestroyOnLoad(transform.gameObject);
networkMatch = gameObject.AddComponent<NetworkMatch>();
}
// Use this for initialization
void Start () {
networkMatch.ListMatches(0, 20, "", OnMatchList);
}
public void OnMatchList(ListMatchResponse matchListResponse)
{
if (matchListResponse.success)
{
if (matchList.Count == 0)
{
CreateMatchRequest create = new CreateMatchRequest();
create.name = "NewRoom";
create.size = 2;
create.advertise = true;
create.password = "";
networkMatch.CreateMatch(create, OnMatchCreate);
}
}
}
public void OnMatchCreate(CreateMatchResponse matchResponse)
{
if (matchResponse.success)
{
Debug.Log("Create match succeeded");
matchCreated = true;
Utility.SetAccessTokenForNetwork(matchResponse.networkId, new NetworkAccessToken(matchResponse.accessTokenString));
NetworkServer.Listen(new MatchInfo(matchResponse), 9000);
}
else
{
Debug.LogError("Create match failed");
}
}
public void OnMatchJoined(JoinMatchResponse matchJoin)
{
if (matchJoin.success)
{
Debug.Log("Join match succeeded");
if (matchCreated)
{
Debug.LogWarning("Match already set up, aborting...");
return;
}
Utility.SetAccessTokenForNetwork(matchJoin.networkId, new NetworkAccessToken(matchJoin.accessTokenString));
NetworkClient myClient = new NetworkClient();
myClient.RegisterHandler(MsgType.Connect, OnConnected);
myClient.Connect(new MatchInfo(matchJoin));
}
else
{
Debug.LogError("Join match failed");
}
}
public void OnConnected(NetworkMessage msg)
{
Debug.Log("Connected!");
}
// Update is called once per frame
void Update () {
networkMatch.ListMatches(0, 20, "", OnMatchList);
}
}
So with my first player it work fine, it doesn't detect a server and create one. But my second player still don't see a server, and so create one.
I'm probably missing something really stupid, something like putting a network component on my object, but again it's hard to move from photon to this, even if both systems look very similar.
Answer by Sylvine · Sep 07, 2016 at 11:16 PM
Ok, for some some reason matchList.Count is not working, that's why I thought it was not detecting other server when it was. I'm using matchListResponse.matches.Count instead and it works.
Your answer
Follow this Question
Related Questions
Matchmaking without internet 1 Answer
Unet local matchmaking 0 Answers
Unet- Null refernence OnMatchCreate , only on Iphone build 0 Answers
How to implement steam's matchmaking service with unity networking? 2 Answers
Bypassing network match password 0 Answers