public class NetworkManager : MonoBehaviour { private float btnX; private float btnY; private float btnW; private float btnH; private bool menuon; private bool refreshing; private HostData[] hostdata; string gamename = "test_networking_game"; // Use this for initialization void Start () { btnX = Screen.width * 0.05f; btnY = Screen.width * 0.05f; btnW = Screen.width * 0.1f; btnH = Screen.width * 0.1f; } void startServer(){ var nat = !Network.HavePublicAddress(); Network.InitializeServer (4, 7777, nat); MasterServer.RegisterHost (gamename, "Test NetGame", "testing server"); } void refreshHostList(){ MasterServer.RequestHostList (gamename); //System.Threading.Thread.Sleep(1500); refreshing = true; Debug.Log (MasterServer.PollHostList().Length); } void OnServerInitialized(){ Debug.Log ("Server Initialized!"); } void OnMasterServerEvent(MasterServerEvent mse) { if (mse == MasterServerEvent.RegistrationSucceeded) Debug.Log("Server registered"); } void Update(){ if (refreshing) { if (MasterServer.PollHostList ().Length > 0) { refreshing = false; Debug.Log (MasterServer.PollHostList().Length); hostdata = MasterServer.PollHostList(); } } } // Update is called once per frame void OnGUI () { if (!Network.isClient && !Network.isServer) { if (!menuon && GUI.Button (new Rect (btnX, btnY, btnW, btnH), "Start Server")) { menuon = false; startServer (); } if (!menuon && GUI.Button (new Rect (btnX, btnY * 1.2f + btnH, btnW, btnH), "Refresh Hosts")) { menuon = false; refreshHostList (); } if (hostdata != null) { for (int i = 0; i < hostdata.Length; i++) { if (GUI.Button (new Rect (btnX * 1.5f + btnW, btnY * 1.2f + (btnH * i), btnW * 3f, btnH * .5f), hostdata [i].gameName)) { Network.Connect (hostdata [i]); } } } } } }