This is the error :
NullReferenceException: Object reference not set to an instance of an object
MenuManager.Menu_Main () (at Assets/MyScripts/MenuManager.cs:40)
MenuManager.OnGUI () (at Assets/MyScripts/MenuManager.cs:20)
using UnityEngine;
using System.Collections;
public class MenuManager : MonoBehaviour
{
public string CurrentMenu;
public string MatchName;
public string MatchPassword;
public int MatchMaxPlayers = 32;
void start()
{
CurrentMenu = "Main";
}
void OnGUI()
{
if (CurrentMenu == "Main")
Menu_Main ();
if (CurrentMenu == "Lobby")
Menu_Lobby ();
if (CurrentMenu == "Host")
Menu_HostGame ();
}
public void NavigateTo(string nextmenu)
{
CurrentMenu = nextmenu;
}
private void Menu_Main()
{
if(GUI.Button(new Rect(10, 10, 200, 50), "Host Game"))
{
NavigateTo("Host");
}
GUI.Label (new Rect (220, 10, 130, 30), "Player Name");
MultiplayerManager.instance.PlayerName = GUI.TextField (new Rect (325, 22, 200, 30), MultiplayerManager.instance.PlayerName);
}
private void Menu_HostGame()
{
//Buttons Host Game
if (GUI.Button(new Rect(10, 10, 200, 50), "Back"))
{
NavigateTo("Main");
}
if (GUI.Button (new Rect (10, 60, 200, 50), "Start Server"))
{
MultiplayerManager.instance.StartServer(MatchName, MatchPassword, MatchMaxPlayers);
}
GUI.Label (new Rect (220, 26, 200, 20), "Match Name");
MatchName = GUI.TextField (new Rect (325, 22, 200, 30), MatchName);
GUI.Label (new Rect (220, 66, 200, 20), "Match Password");
MatchPassword = GUI.PasswordField (new Rect (325, 62, 200, 30), MatchPassword, "*"[0], 25);
GUI.Label (new Rect (220, 106, 200, 20), "Max Players");
GUI.Label (new Rect (320, 107, 200, 30), MatchMaxPlayers.ToString());
MatchMaxPlayers = Mathf.Clamp (MatchMaxPlayers, 8, 32);
if (GUI.Button (new Rect (370, 104, 20, 20), "+"))
MatchMaxPlayers += 1;
if (GUI.Button (new Rect (340, 104, 20, 20), "-"))
MatchMaxPlayers -= 1;
}
private void Menu_Lobby()
{
}
}
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class MultiplayerManager : MonoBehaviour
{
public static MultiplayerManager instance;
public string PlayerName;
private string MatchName = "";
private string MatchPassword = "";
private int MatchMaxUsers = 32;
public List<MPPlayer> PlayerList = new List<MPPlayer>();
void start()
{
instance = this;
}
public void StartServer(string servername, string serverpassword, int maxplayers)
{
MatchName = servername;
MatchPassword = serverpassword;
MatchMaxUsers = maxplayers;
Network.InitializeServer (MatchMaxUsers, 2550, false);
Network.InitializeSecurity ();
}
void OnServerInitialized()
{
Server_PlayerJoinRequest ("", Network.player);
}
void OnConnectedToServer()
{
GetComponent<NetworkView>().RPC("Server_PlayerJoinRequest", RPCMode.Server, "", Network.player);
}
void OnPlayerDisconnected(NetworkPlayer id)
{
GetComponent<NetworkView>().RPC("Client_RemovePlayer", RPCMode.All, id);
}
[RPC]
void Server_PlayerJoinRequest(string playername, NetworkPlayer view)
{
GetComponent<NetworkView>().RPC("Client_AddPlayerToList", RPCMode.All, playername, view);
}
[RPC]
void Client_AddPlayerToList(string playername, NetworkPlayer view)
{
MPPlayer tempplayer = new MPPlayer ();
tempplayer.PlayerName = playername;
tempplayer.PlayerNetwork = view;
PlayerList.Add (tempplayer);
}
[RPC]
void Client_RemovePlayer(NetworkPlayer view)
{
MPPlayer temppl = null;
foreach(MPPlayer pl in PlayerList)
{
if(pl.PlayerNetwork == view)
{
temppl = pl;
}
}
if (temppl != null)
{
PlayerList.Remove(temppl);
}
}
}
public class MPPlayer
{
public string PlayerName = "";
public NetworkPlayer PlayerNetwork;
}