Advertisement
Guest User

MenuManager.cs

a guest
Jan 2nd, 2015
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  1. //credits; Klaus Joensuu
  2.  
  3. using UnityEngine;
  4. using System.Collections;
  5.  
  6. public class MenuManager : MonoBehaviour
  7. {
  8. public MenuManager instance;
  9.  
  10. public string CurrentMenu;
  11.  
  12. public string MatchName;
  13. public string MatchPassword = "";
  14. public int MatchMaxPlayers = 32;
  15.  
  16. private Vector2 ScrollLobby = Vector2.zero;
  17.  
  18. void Start()
  19. {
  20. instance = this;
  21. CurrentMenu = "Main";
  22. MatchName = "Aplha" + Random.Range (0, 5000);
  23.  
  24. }
  25.  
  26. void FixedUpdate()
  27. {
  28. instance = this;
  29. }
  30.  
  31. void OnGUI()
  32. {
  33. if(CurrentMenu == "Main")
  34. Menu_Main();
  35. if(CurrentMenu == "Lobby")
  36. Menu_Lobby();
  37. if(CurrentMenu == "Host")
  38. Menu_HostGame();
  39. if (CurrentMenu == "ChoMap")
  40. Menu_ChooseMap();
  41. }
  42.  
  43. public void NavigateTo(string nextmenu)
  44. {
  45. CurrentMenu = nextmenu;
  46. }
  47.  
  48. private void Menu_Main()
  49. {
  50. if(GUI.Button(new Rect(10,10,200,50), "Host Game"))
  51. {
  52. NavigateTo("Host");
  53. }
  54. if(GUI.Button(new Rect(10,70,200,50), "Refresh"))
  55. {
  56. MasterServer.RequestHostList("RecoilCombat");
  57. }
  58.  
  59. GUI.Label (new Rect (220, 20, 130, 30), "Player Name:");
  60. MultiplayerManager.instance.PlayerName = GUI.TextField (new Rect (410, 20, 150, 30), MultiplayerManager.instance.PlayerName);
  61. if (GUI.Button (new Rect (600, 20, 100, 30), "Save Name"))
  62. {
  63. PlayerPrefs.SetString("PlayerName", MultiplayerManager.instance.PlayerName);
  64. }
  65.  
  66. GUILayout.BeginArea (new Rect (Screen.width - 300, 0, 300, Screen.height), "Server List", "Box");
  67.  
  68. foreach (HostData match in MasterServer.PollHostList())
  69. {
  70. GUILayout.BeginHorizontal("Box");
  71.  
  72. GUILayout.Label(match.gameName);
  73. if(GUILayout.Button("Connect"))
  74. {
  75. Network.Connect(match);
  76. }
  77.  
  78. GUILayout.EndHorizontal();
  79. }
  80.  
  81. GUILayout.EndArea ();
  82.  
  83. }
  84.  
  85. private void Menu_HostGame()
  86. {
  87. //Buttons Host Game
  88. if(GUI.Button(new Rect(10,10,200,50), "Back"))
  89. {
  90. NavigateTo("Main");
  91. }
  92.  
  93. if(GUI.Button(new Rect(10,60,200,50), "Start Server"))
  94. {
  95. MultiplayerManager.instance.StartServer(MatchName, MatchPassword, MatchMaxPlayers);
  96. }
  97.  
  98. if(GUI.Button(new Rect(10,160,200,50), "Choose Map"))
  99. {
  100. NavigateTo("ChoMap");
  101. }
  102.  
  103. GUI.Label(new Rect (220, 10, 130, 30), "Server Name");
  104. MatchName = GUI.TextField (new Rect(400, 10, 200, 30), MatchName);
  105.  
  106. GUI.Label(new Rect (220, 50, 130, 30), "Server Password");
  107. MatchPassword = GUI.PasswordField(new Rect (400, 50, 200, 30), MatchPassword, '*');
  108.  
  109.  
  110. GUI.Label(new Rect(220, 90, 130, 30), "Server Max Players");
  111. GUI.Label(new Rect(400, 90, 200, 30), MatchMaxPlayers.ToString());
  112. MatchMaxPlayers = Mathf.Clamp(MatchMaxPlayers, 8, 32);
  113.  
  114. if (GUI.Button(new Rect(425,90,25,30), "+"))
  115. MatchMaxPlayers += 2;
  116. if (GUI.Button(new Rect(450,90,25,30), "-"))
  117. MatchMaxPlayers -= 2;
  118.  
  119. GUI.Label(new Rect (650, 10, 130, 30), MultiplayerManager.instance.CurrentMap.MapName);
  120. }
  121.  
  122. private void Menu_Lobby()
  123. {
  124. ScrollLobby = GUILayout.BeginScrollView (ScrollLobby, GUILayout.MaxWidth(200));
  125.  
  126. foreach(MPPlayer pl in MultiplayerManager.instance.PlayerList)
  127. {
  128. GUILayout.Box(pl.PlayerName);
  129. }
  130.  
  131. GUILayout.EndScrollView();
  132.  
  133. GUI.Box(new Rect(250, 10, 200, 40), MultiplayerManager.instance.CurrentMap.MapName);
  134.  
  135. if(Network.isServer)
  136. {
  137. if(GUI.Button(new Rect(Screen.width - 200, Screen.height - 80, 200, 40), "Start Server"));
  138. {
  139. MultiplayerManager.instance.networkView.RPC ("Client_LoadMultiplayerMap", RPCMode.All, MultiplayerManager.instance.CurrentMap.MapLoadName, MultiplayerManager.instance.oldprefix + 1);
  140. MultiplayerManager.instance.oldprefix += 1;
  141. MultiplayerManager.instance.IsMatchStarted = true;
  142. }
  143. }
  144. if (GUI.Button(new Rect(Screen.width - 200, Screen.height - 40, 200, 40), "Disconnect"));
  145. {
  146. Network.Disconnect();
  147. }
  148. }
  149.  
  150. private void Menu_ChooseMap()
  151. {
  152. if(GUI.Button(new Rect(10,10,200,50), "Back"))
  153. {
  154. NavigateTo("Host");
  155. }
  156.  
  157. GUI.Label(new Rect (220, 10, 130, 30), "Choose Map");
  158. GUILayout.BeginArea(new Rect(350, 10, 150, Screen.height));
  159.  
  160. foreach(MapSetting map in MultiplayerManager.instance.MapList)
  161. {
  162. if(GUILayout.Button(map.MapName))
  163. {
  164. NavigateTo("Host");
  165. MultiplayerManager.instance.CurrentMap = map;
  166.  
  167. }
  168. }
  169. GUILayout.EndArea();
  170. }
  171.  
  172. void OnServerInitialized()
  173. {
  174. NavigateTo("Lobby");
  175. }
  176.  
  177. void OnConnectToServer()
  178. {
  179. NavigateTo("Lobby");
  180. }
  181.  
  182. void OnDisconnectedFromServer(NetworkDisconnection info)
  183. {
  184. NavigateTo("Main");
  185. }
  186. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement