I have an error saying its not set to an instance of an object althoug i have set it to an object. Please Help ??

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;
}

The error message:

(at Assets/MyScripts/MenuManager.cs:40)

says that line 40 has the problem. Line 40 is:

MultiplayerManager.instance.PlayerName = GUI.TextField (new Rect (325, 22, 200, 30), MultiplayerManager.instance.PlayerName);

So now you know exactly where the problem is.

Further the error message tells you:

Object reference not set to an instance of an object

Which basically says that a variable you’re using isn’t set to anything. Your line 40 uses a variable called MultiplayerManager but I can’t see where you set that variable to a value anywhere. Your MenuManager class doesn’t know anything about the MultiplayerManager class.