Object reference not set without object? Calling ListMatches and getting this error
NullReferenceException: Object reference not set to an instance of an object NetWorkingServer.OnGUI () (at Assets/Scripts/General/Networking/NetWorkingServer.cs:40)
It is a basic lobby/hud setup i am trying and I am getting this error when I press the button to search for games/ListMatches. I should be getting the 'no matches found messages' instead i get this error which i am super confused about, probably something simple i am missing here. edit: the public objects have been set in the inspector so its not that.
 using UnityEngine;
 using UnityEngine.UI;
 using UnityEngine.Networking;
 using UnityEngine.Networking.Match;
 using UnityEngine.Networking.Types;
 using System.Collections.Generic;
 
 public class NetWorkingServer : MonoBehaviour{
 
     public GameObject Menu;
     public Text hostList;
     public string gameName;
     public NetworkManager networkManager;
 
     //Usethisforinitialization
     void Start(){
         gameName = "game1";
         Menu.SetActive (false);
         networkManager = GetComponent<NetworkManager> ();
     }
 
     //Updateiscalledonceperframe
     void Update(){
 
 
 
     }
     void OnGUI()
     {
 
         //gameplay related
 
 
         //server related
             if(GUI.Button(new Rect(100,100,250,100),"StartServer")){
                 HostServer(gameName);
             }
             if(GUI.Button(new Rect(100,250,250,100),"Find Game/Hosts")){
             
             networkManager.matchMaker.ListMatches (0, 10, "game1", true, 0, 0, networkManager.OnMatchList);
 
             if (networkManager.matches.Count !=0) {
                 Debug.Log ("A list of matches was found");
                 foreach (MatchInfoSnapshot match in networkManager.matches) {
                     hostList.text = match.name.ToString () + System.Environment.NewLine;
                 }
             } else {
                 hostList.text = "No matches found";
                 Debug.Log ("No matches in requested room!");
             }
             }
 
         
     }
 
     public void HostServer(string matchName){
 
         networkManager.StartMatchMaker ();
         networkManager.matchMaker.CreateMatch (matchName, 4, true, "", "", "", 0, 0,networkManager.OnMatchCreate);
 
     }
 
              Answer by nasir_41 · Feb 02, 2017 at 06:19 AM
After Calling this Methode
networkManager.matchMaker.ListMatches (0, 10, "game1", true, 0, 0, networkManager.OnMatchList);
You probably need to wait for the callback here. And put the following code.. In the callback method.
if (networkManager.matches.Count !=0) { Debug.Log ("A list of matches was found"); foreach (MatchInfoSnapshot match in networkManager.matches) { hostList.text = match.name.ToString () + System.Environment.NewLine; } } else { hostList.text = "No matches found"; Debug.Log ("No matches in requested room!"); } }
Answer by newbienoob · Feb 02, 2017 at 07:06 AM
@nasir_41 how would i go about waiting for the callback? i was under the assumption that NetworkManager.OnMatchList would automatically do that.
Your answer
 
             Follow this Question
Related Questions
Unet local matchmaking 0 Answers
Unet- Null refernence OnMatchCreate , only on Iphone build 0 Answers
netcode throws hash errors when attempting to spawn local player 0 Answers
How to implement steam's matchmaking service with unity networking? 2 Answers
I'm getting an error: "AudioClip can't be deserialized because it has no default constructor" 1 Answer