Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //credits; Klaus Joensuu
- using UnityEngine;
- using System.Collections;
- public class MenuManager : MonoBehaviour
- {
- public MenuManager instance;
- public string CurrentMenu;
- public string MatchName;
- public string MatchPassword = "";
- public int MatchMaxPlayers = 32;
- private Vector2 ScrollLobby = Vector2.zero;
- void Start()
- {
- instance = this;
- CurrentMenu = "Main";
- MatchName = "Aplha" + Random.Range (0, 5000);
- }
- void FixedUpdate()
- {
- instance = this;
- }
- void OnGUI()
- {
- if(CurrentMenu == "Main")
- Menu_Main();
- if(CurrentMenu == "Lobby")
- Menu_Lobby();
- if(CurrentMenu == "Host")
- Menu_HostGame();
- if (CurrentMenu == "ChoMap")
- Menu_ChooseMap();
- }
- public void NavigateTo(string nextmenu)
- {
- CurrentMenu = nextmenu;
- }
- private void Menu_Main()
- {
- if(GUI.Button(new Rect(10,10,200,50), "Host Game"))
- {
- NavigateTo("Host");
- }
- if(GUI.Button(new Rect(10,70,200,50), "Refresh"))
- {
- MasterServer.RequestHostList("RecoilCombat");
- }
- GUI.Label (new Rect (220, 20, 130, 30), "Player Name:");
- MultiplayerManager.instance.PlayerName = GUI.TextField (new Rect (410, 20, 150, 30), MultiplayerManager.instance.PlayerName);
- if (GUI.Button (new Rect (600, 20, 100, 30), "Save Name"))
- {
- PlayerPrefs.SetString("PlayerName", MultiplayerManager.instance.PlayerName);
- }
- GUILayout.BeginArea (new Rect (Screen.width - 300, 0, 300, Screen.height), "Server List", "Box");
- foreach (HostData match in MasterServer.PollHostList())
- {
- GUILayout.BeginHorizontal("Box");
- GUILayout.Label(match.gameName);
- if(GUILayout.Button("Connect"))
- {
- Network.Connect(match);
- }
- GUILayout.EndHorizontal();
- }
- GUILayout.EndArea ();
- }
- 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);
- }
- if(GUI.Button(new Rect(10,160,200,50), "Choose Map"))
- {
- NavigateTo("ChoMap");
- }
- GUI.Label(new Rect (220, 10, 130, 30), "Server Name");
- MatchName = GUI.TextField (new Rect(400, 10, 200, 30), MatchName);
- GUI.Label(new Rect (220, 50, 130, 30), "Server Password");
- MatchPassword = GUI.PasswordField(new Rect (400, 50, 200, 30), MatchPassword, '*');
- GUI.Label(new Rect(220, 90, 130, 30), "Server Max Players");
- GUI.Label(new Rect(400, 90, 200, 30), MatchMaxPlayers.ToString());
- MatchMaxPlayers = Mathf.Clamp(MatchMaxPlayers, 8, 32);
- if (GUI.Button(new Rect(425,90,25,30), "+"))
- MatchMaxPlayers += 2;
- if (GUI.Button(new Rect(450,90,25,30), "-"))
- MatchMaxPlayers -= 2;
- GUI.Label(new Rect (650, 10, 130, 30), MultiplayerManager.instance.CurrentMap.MapName);
- }
- private void Menu_Lobby()
- {
- ScrollLobby = GUILayout.BeginScrollView (ScrollLobby, GUILayout.MaxWidth(200));
- foreach(MPPlayer pl in MultiplayerManager.instance.PlayerList)
- {
- GUILayout.Box(pl.PlayerName);
- }
- GUILayout.EndScrollView();
- GUI.Box(new Rect(250, 10, 200, 40), MultiplayerManager.instance.CurrentMap.MapName);
- if(Network.isServer)
- {
- if(GUI.Button(new Rect(Screen.width - 200, Screen.height - 80, 200, 40), "Start Server"));
- {
- MultiplayerManager.instance.networkView.RPC ("Client_LoadMultiplayerMap", RPCMode.All, MultiplayerManager.instance.CurrentMap.MapLoadName, MultiplayerManager.instance.oldprefix + 1);
- MultiplayerManager.instance.oldprefix += 1;
- MultiplayerManager.instance.IsMatchStarted = true;
- }
- }
- if (GUI.Button(new Rect(Screen.width - 200, Screen.height - 40, 200, 40), "Disconnect"));
- {
- Network.Disconnect();
- }
- }
- private void Menu_ChooseMap()
- {
- if(GUI.Button(new Rect(10,10,200,50), "Back"))
- {
- NavigateTo("Host");
- }
- GUI.Label(new Rect (220, 10, 130, 30), "Choose Map");
- GUILayout.BeginArea(new Rect(350, 10, 150, Screen.height));
- foreach(MapSetting map in MultiplayerManager.instance.MapList)
- {
- if(GUILayout.Button(map.MapName))
- {
- NavigateTo("Host");
- MultiplayerManager.instance.CurrentMap = map;
- }
- }
- GUILayout.EndArea();
- }
- void OnServerInitialized()
- {
- NavigateTo("Lobby");
- }
- void OnConnectToServer()
- {
- NavigateTo("Lobby");
- }
- void OnDisconnectedFromServer(NetworkDisconnection info)
- {
- NavigateTo("Main");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement