Advertisement
Guest User

NetworkManagerScript

a guest
Jun 11th, 2013
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.98 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class NetworkManagerScript : MonoBehaviour
  5. {
  6.     public Transform spawnObject;
  7.     public GameObject playerPrefab;
  8.  
  9.     private string currentMenu;
  10.  
  11.     private float bttnW = 150;
  12.     private float bttnH = 40;
  13.  
  14.     private bool Refreshing = false;
  15.     private HostData[] hostData;
  16.  
  17.     private string gameName = "Medieval_Swords_Online";
  18.  
  19.     void Start()
  20.     {
  21.         currentMenu = "Multiplayer";
  22.     }
  23.  
  24.     void Update()
  25.     {
  26.         if (Refreshing)
  27.         {
  28.             if (MasterServer.PollHostList().Length > 0)
  29.             {
  30.                 Debug.Log(MasterServer.PollHostList().Length.ToString());
  31.                 Refreshing = false;
  32.                 hostData = MasterServer.PollHostList();
  33.             }
  34.         }
  35.     }
  36.  
  37.     //Own Functions
  38.     void startServer()
  39.     {
  40.         //initialize the server
  41.         Network.InitializeServer(32, 25001, !Network.HavePublicAddress());
  42.         MasterServer.RegisterHost(gameName, "Medieval Swords Online", "This is a beginners game");
  43.     }
  44.  
  45.     void RefreshHostList()
  46.     {
  47.         MasterServer.RequestHostList(gameName);
  48.         Refreshing = true;
  49.  
  50.     }
  51.  
  52.     void spawnPlayer()
  53.     {
  54.         Network.Instantiate(playerPrefab, spawnObject.position, Quaternion.identity, 0);
  55.     }
  56.  
  57.     //Unity Server Events
  58.     void OnServerInitialized()
  59.     {
  60.         //event when the server is initialized
  61.         Debug.Log("Server Initialized!");
  62.         spawnPlayer();
  63.     }
  64.  
  65.     void OnMasterServerEvent(MasterServerEvent mse)
  66.     {
  67.         if(mse == MasterServerEvent.RegistrationSucceeded)
  68.         {
  69.             Debug.Log("Registered Server");
  70.         }
  71.     }
  72.  
  73.     void OnConnectedToServer()
  74.     {
  75.         spawnPlayer();
  76.     }
  77.  
  78.  
  79.     //Gui
  80.     void OnGUI()
  81.     {
  82.         if (currentMenu == "Main")
  83.             Menu_Main();
  84.  
  85.         if (currentMenu == "Multiplayer")
  86.             Menu_Multiplayer();
  87.  
  88.     }
  89.  
  90.     void Menu_Main()
  91.     {
  92.  
  93.     }
  94.  
  95.     void Menu_Multiplayer()
  96.     {
  97.         if (!Network.isClient && !Network.isServer)
  98.         {
  99.             if (GUI.Button(new Rect(50, 50, bttnW, bttnH), "Start Server"))
  100.             {
  101.                 startServer();
  102.             }
  103.  
  104.             if (GUI.Button(new Rect(50, 100, bttnW, bttnH), "Refresh"))
  105.             {
  106.                 Debug.Log("Refreshing...");
  107.                 RefreshHostList();
  108.             }
  109.  
  110.             GUILayout.BeginArea(new Rect(Screen.width - 500, 0, 500, Screen.height), "Server List");
  111.             GUILayout.Space(20);
  112.             foreach (HostData hostedGame in MasterServer.PollHostList())
  113.             {
  114.                 GUILayout.BeginHorizontal("Box");
  115.  
  116.                 GUILayout.Label(hostedGame.gameName);
  117.                 if (GUILayout.Button("Connect"))
  118.                 {
  119.                     Network.Connect(hostedGame);
  120.                 }
  121.  
  122.                 GUILayout.EndHorizontal();
  123.             }
  124.  
  125.             GUILayout.EndArea();
  126.         }
  127.     }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement