This checks if the NetworkManager has a client and that it is connected to a server.
void HostGame() { if (!_networkManager.IsClientConnected() && !NetworkServer.active) { if (_noConnection) { _networkManager.StartHost(); } // If our client hasn't connected to the server, and the server isn't active... // And no connections have been made yet, start a host! } }
void Update() { if (!showGUI) { return; } if (!manager.IsClientConnected() && !NetworkServer.active && manager.matchMaker == null) { if (UnityEngine.Application.platform != RuntimePlatform.WebGLPlayer) { if (Input.GetKeyDown(KeyCode.S)) { manager.StartServer(); } if (Input.GetKeyDown(KeyCode.H)) { manager.StartHost(); } } if (Input.GetKeyDown(KeyCode.C)) { manager.StartClient(); } } if (NetworkServer.active && manager.IsClientConnected()) { if (Input.GetKeyDown(KeyCode.X)) { manager.StopHost(); } } }
private void Update() { if (!showGUI) { return; } if (!manager.IsClientConnected() && !NetworkServer.active && manager.matchMaker == null) { if (Input.GetKeyDown(KeyCode.S)) { manager.StartServer(); } if (Input.GetKeyDown(KeyCode.H)) { manager.StartHost(); } if (Input.GetKeyDown(KeyCode.C)) { manager.StartClient(); } } if (NetworkServer.active && manager.IsClientConnected() && Input.GetKeyDown(KeyCode.X)) { manager.StopHost(); } }
void Update() { if (!manager.IsClientConnected() && !NetworkServer.active && manager.matchMaker == null) { if (UnityEngine.Application.platform != RuntimePlatform.WebGLPlayer) { manager.StartHost(); } } }
void Update() { if (Input.GetKeyDown(KeyCode.Escape)) { isPaused = !isPaused; } if (isPaused) { Time.timeScale = 0f; // Le temps s'arrete } else { Time.timeScale = 1.0f; // Le temps reprend } if (!showGUI) { return; } if (!manager.IsClientConnected() && !NetworkServer.active && manager.matchMaker == null) { if (UnityEngine.Application.platform != RuntimePlatform.WebGLPlayer) { if (Input.GetKeyDown(KeyCode.S)) { manager.StartServer(); } if (Input.GetKeyDown(KeyCode.H)) { manager.StartHost(); } } if (Input.GetKeyDown(KeyCode.C)) { manager.StartClient(); } } if (NetworkServer.active && manager.IsClientConnected()) { if (Input.GetKeyDown(KeyCode.X)) { manager.StopHost(); } } }
// Update is called once per frame void Update() { if (UnityEngine.Networking.NetworkServer.active) { if (leaveMatch()) { if (manager.IsClientConnected()) { manager.StopHost(); } else { manager.StopServer(); } ShowMenu(activeGroup); } } }
void OnGUI() { if (!showGUI) { return; } GUI.skin = myGUI; GUI.skin.button.fontSize = Screen.height / 25; GUI.skin.textField.fontSize = Screen.height / 25; GUI.skin.label.fontSize = Screen.height / 25; GUI.skin.box.fontSize = Screen.height / 25; int xpos = 10 + offsetX; int ypos = 40 + offsetY; int heightButton = Screen.height / 10; int widthButton = Screen.width / 4; int spacing = heightButton + 10; bool noConnection = (manager.client == null || manager.client.connection == null || manager.client.connection.connectionId == -1); if (!manager.IsClientConnected() && !NetworkServer.active && manager.matchMaker == null) { if (noConnection) { } else { GUI.Label(new Rect(xpos, ypos, 200, 20), "Connecting to " + manager.networkAddress + ":" + manager.networkPort + ".."); ypos += spacing; if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Cancel Connection Attempt")) { manager.StopClient(); } } } else { } if (manager.IsClientConnected() && !ClientScene.ready) { if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Client Ready")) { ClientScene.Ready(manager.client.connection); if (ClientScene.localPlayers.Count == 0) { ClientScene.AddPlayer(0); } } ypos += spacing; } if (NetworkServer.active || manager.IsClientConnected()) { if (GUI.Button(new Rect(xpos, Screen.height - heightButton - 10, widthButton, heightButton), "Stop (X)")) { manager.StopHost(); } ypos += spacing; } if (!NetworkServer.active && !manager.IsClientConnected() && noConnection) { ypos += 10; if (UnityEngine.Application.platform == RuntimePlatform.WebGLPlayer) { GUI.Box(new Rect(xpos - 5, ypos, 220, 25), "(WebGL cannot use Match Maker)"); return; } if (manager.matchMaker == null) { if (GUI.Button(new Rect(xpos, ypos, widthButton, heightButton), "Multijoueur")) { manager.StartMatchMaker(); } ypos += spacing; } else { if (manager.matchInfo == null) { if (manager.matches == null) { if (GUI.Button(new Rect(xpos, ypos, widthButton, heightButton), "Create Internet Match")) { manager.matchMaker.CreateMatch(manager.matchName, manager.matchSize, true, "", "", "", 0, 0, manager.OnMatchCreate); } ypos += spacing; GUI.Label(new Rect(xpos, ypos, widthButton, heightButton), "Room Name:"); ypos += spacing / 2; manager.matchName = GUI.TextField(new Rect(xpos, ypos, widthButton, heightButton / 2), manager.matchName); ypos += spacing / 2; if (GUI.Button(new Rect(xpos, ypos, widthButton, heightButton), "Find Internet Match")) { manager.matchMaker.ListMatches(0, 20, "", false, 0, 0, manager.OnMatchList); } ypos += spacing; } else { for (int i = 0; i < manager.matches.Count; i++) { var match = manager.matches[i]; if (GUI.Button(new Rect(xpos, ypos, widthButton, heightButton), "Join Match:" + match.name)) { manager.matchName = match.name; manager.matchMaker.JoinMatch(match.networkId, "", "", "", 0, 0, manager.OnMatchJoined); } ypos += spacing; } if (GUI.Button(new Rect(xpos, ypos, widthButton, heightButton), "Back to Match Menu")) { manager.matches = null; } ypos += spacing; } } if (GUI.Button(new Rect(xpos, ypos, widthButton, heightButton), "Back")) { manager.StopMatchMaker(); } ypos += spacing; } } }
void OnGUI() { int xpos = 25; int ypos = 50; int buttonWidth = 400; int buttonHeight = 100; int spacing = buttonHeight + 10; bool noConnection = (manager.client == null || manager.client.connection == null || manager.client.connection.connectionId == -1); if (!manager.IsClientConnected() && !NetworkServer.active) { if (noConnection) { if (GUI.Button(new Rect(xpos, ypos, buttonWidth, buttonHeight), "LAN Host(H)")) { manager.StartHost(); } ypos += spacing; if (GUI.Button(new Rect(xpos, ypos, buttonWidth / 2, buttonHeight), "LAN Client(C)")) { manager.StartClient(); } manager.networkAddress = GUI.TextField(new Rect(xpos + buttonWidth / 2, ypos, buttonWidth / 2, buttonHeight), manager.networkAddress); ypos += spacing; if (GUI.Button(new Rect(xpos, ypos, buttonWidth, buttonHeight), "LAN Server Only(S)")) { manager.StartServer(); } ypos += spacing; } else { GUI.Label(new Rect(xpos, ypos, buttonWidth, buttonHeight), "Connecting to " + manager.networkAddress + ":" + manager.networkPort + ".."); ypos += spacing; if (GUI.Button(new Rect(xpos, ypos, buttonWidth, buttonHeight), "Cancel Connection Attempt")) { manager.StopClient(); } } } else { if (NetworkServer.active) { string serverMsg = "Server: port=" + manager.networkPort; if (manager.useWebSockets) { serverMsg += " (Using WebSockets)"; } GUI.Label(new Rect(xpos, ypos, buttonWidth, buttonHeight), serverMsg); ypos += spacing; } if (manager.IsClientConnected()) { GUI.Label(new Rect(xpos, ypos, buttonWidth, buttonHeight), "Client: address=" + manager.networkAddress + " port=" + manager.networkPort); ypos += spacing; } } if (manager.IsClientConnected() && !ClientScene.ready) { if (GUI.Button(new Rect(xpos, ypos, buttonWidth, buttonHeight), "Client Ready")) { ClientScene.Ready(manager.client.connection); if (ClientScene.localPlayers.Count == 0) { ClientScene.AddPlayer(0); } } ypos += spacing; } if (NetworkServer.active || manager.IsClientConnected()) { if (GUI.Button(new Rect(xpos, ypos, buttonWidth, buttonHeight), "Quit")) { manager.StopHost(); } ypos += spacing; } }
void Update() { if ((gameTime % 3600) / 60 > 9) { gameTimerText.text = gameTime / 3600 + ":" + (gameTime % 3600) / 60; } else { gameTimerText.text = gameTime / 3600 + ":0" + (gameTime % 3600) / 60; } if (gameTime <= 0) { scores.Clear(); ending = true; if (winner != null) { Destroy(winner.gameObject); } winner = (Text)Instantiate(whoWon, whoWon.transform.position, whoWon.transform.rotation); winner.enabled = true; winner.gameObject.SetActive(true); winner.transform.SetParent(whoWon.transform.parent); try { for (int i = 0; i < playerKills.Count; i++) { ((Text)playerDeaths[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().deaths).ToString(); ((Text)playerKills[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().kills).ToString(); scores.Add(int.Parse(((Text)playerKills[i]).text) - int.Parse(((Text)playerDeaths[i]).text)); } } catch (Exception e) { disconnect(); } int indexOfWinner = 0; for (int i = 0; i < scores.Count; i++) { if ((int)scores[i] > (int)scores[indexOfWinner]) { indexOfWinner = i; } } winner.text = (string)playerNames[indexOfWinner] + " has won with a score of " + ((Text)playerKills[indexOfWinner]).text + " and " + ((Text)playerDeaths[indexOfWinner]).text; if (gameTime < -180) { disconnect(); } } GameObject[] players = GameObject.FindGameObjectsWithTag("Player"); if (players.Length != playerNames.Count) { playerNames.Clear(); playerNetIDs.Clear(); for (int i = 0; i < playersInGame.Count; i++) { Destroy((Text)playersInGame[i]); Destroy((Text)playerDeaths[i]); Destroy((Text)playerKills[i]); } playerDeaths.Clear(); playerKills.Clear(); playersInGame.Clear(); for (int i = 0; i < players.Length; i++) { if (players[i].GetComponent <PlayerSetup>().playerName != "") { playerNames.Add(players[i].GetComponent <PlayerSetup>().playerName); playerNetIDs.Add(players[i].GetComponent <NetworkIdentity>().netId); print(playerNames[i]); playersInGame.Add((Text)Instantiate(playerHeading, new Vector3(playerHeading.transform.position.x, playerHeading.transform.position.y + (i + 1) * -35, 0), playerHeading.transform.rotation)); ((Text)playersInGame[i]).transform.SetParent(leaderboardPanel.transform); ((Text)playersInGame[i]).text = (string)playerNames[i]; playerKills.Add((Text)Instantiate(killHeading, new Vector3(killHeading.transform.position.x, killHeading.transform.position.y + (i + 1) * -35, 0), killHeading.transform.rotation)); ((Text)playerKills[i]).transform.SetParent(leaderboardPanel.transform); ((Text)playerKills[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().kills).ToString(); playerDeaths.Add((Text)Instantiate(deathHeading, new Vector3(deathHeading.transform.position.x, deathHeading.transform.position.y + (i + 1) * -35, 0), deathHeading.transform.rotation)); ((Text)playerDeaths[i]).transform.SetParent(leaderboardPanel.transform); ((Text)playerDeaths[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().deaths).ToString(); } } } if (!showGUI) { return; } if (Input.GetButtonDown("Pause") && ((NetworkClient.active && manager.IsClientConnected()) || NetworkServer.active /*manager.matchMaker != null*/) && !ending) { pausePanel.SetActive(!pausePanel.activeSelf); } if (Input.GetButton("Leaderboards") && ((NetworkClient.active && manager.IsClientConnected()) || NetworkServer.active /*manager.matchMaker != null*/) && !ending) { for (int i = 0; i < playerKills.Count; i++) { ((Text)playerDeaths[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().deaths).ToString(); ((Text)playerKills[i]).text = (ClientScene.FindLocalObject((NetworkInstanceId)playerNetIDs[i]).GetComponent <PlayerSetup>().kills).ToString(); } leaderboardPanel.SetActive(true); } else { leaderboardPanel.SetActive(false); } if (!NetworkClient.active && !NetworkServer.active /*manager.matchMaker == null*/) { if (winner != null) { Destroy(winner.gameObject); } ending = false; gameTime = originalGameTime; if (playerNames.Count > 0) { playerNames.Clear(); for (int i = 0; i < playersInGame.Count; i++) { Destroy((Text)playersInGame[i]); Destroy((Text)playerDeaths[i]); Destroy((Text)playerKills[i]); } playerDeaths.Clear(); playerKills.Clear(); playersInGame.Clear(); } leaderboardPanel.SetActive(false); pausePanel.SetActive(false); panelToToggleActive.SetActive(true); configPanel.SetActive(true); connectingPanel.SetActive(false); } if ((NetworkClient.active && manager.IsClientConnected()) || NetworkServer.active /*manager.matchMaker != null*/) { panelToToggleActive.SetActive(false); } else { panelToToggleActive.SetActive(true); } if (!manager.IsClientConnected() && NetworkClient.active) { connectingPanel.SetActive(true); configPanel.SetActive(false); attemptingConnect.GetComponent <Text>().text = "Attempting to Connect to " + manager.networkAddress; } }
void OnGUI() { if (!showGUI) { return; } bool noConnection = (manager.client == null || manager.client.connection == null || manager.client.connection.connectionId == -1); GUILayout.BeginArea(new Rect(10 + offsetX, 40 + offsetY, 215, 9999)); if (!manager.IsClientConnected() && !NetworkServer.active) { if (noConnection) { // LAN Host if (Application.platform != RuntimePlatform.WebGLPlayer) { if (GUILayout.Button("LAN Host")) { manager.StartHost(); } } // LAN Client + IP GUILayout.BeginHorizontal(); if (GUILayout.Button("LAN Client")) { manager.StartClient(); } manager.networkAddress = GUILayout.TextField(manager.networkAddress); GUILayout.EndHorizontal(); // LAN Server Only if (Application.platform == RuntimePlatform.WebGLPlayer) { // cant be a server in webgl build GUILayout.Box("( WebGL cannot be server )"); } else { if (GUILayout.Button("LAN Server Only")) { manager.StartServer(); } } } else { // Connecting GUILayout.Label("Connecting to " + manager.networkAddress + ":" + manager.networkPort + ".."); if (GUILayout.Button("Cancel Connection Attempt")) { manager.StopClient(); } } } else { // server / client status message if (NetworkServer.active) { string serverMsg = "Server: port=" + manager.networkPort; if (manager.useWebSockets) { serverMsg += " (Using WebSockets)"; } GUILayout.Label(serverMsg); } if (manager.IsClientConnected()) { GUILayout.Label("Client: address=" + manager.networkAddress + " port=" + manager.networkPort); } } // client ready if (manager.IsClientConnected() && !ClientScene.ready) { if (GUILayout.Button("Client Ready")) { ClientScene.Ready(manager.client.connection); if (ClientScene.localPlayers.Count == 0) { ClientScene.AddPlayer(0); } } } // stop if (NetworkServer.active || manager.IsClientConnected()) { if (GUILayout.Button("Stop")) { manager.StopHost(); } } GUILayout.EndArea(); }
void Update() { if (!showGUI) { return; } if (!chosen) { startPanel.SetActive(false); connectPanel.SetActive(false); mmPanel.SetActive(false); connectedPanel.SetActive(false); readyPanel.SetActive(false); pickMatchPanel.SetActive(false); changeServerPanel.SetActive(false); connectedServerPanel.SetActive(false); return; } int xpos = 10 + offsetX; int ypos = 40 + offsetY; const int spacing = 24; bool noConnection = (manager.client == null || manager.client.connection == null || manager.client.connection.connectionId == -1); if (!manager.IsClientConnected() && !NetworkServer.active && manager.matchMaker == null) { if (noConnection) { startPanel.SetActive(true); connectPanel.SetActive(false); mmPanel.SetActive(false); connectedPanel.SetActive(false); readyPanel.SetActive(false); pickMatchPanel.SetActive(false); changeServerPanel.SetActive(false); connectedServerPanel.SetActive(false); manager.networkAddress = ipAddr.text; } else { startPanel.SetActive(false); connectPanel.SetActive(true); mmPanel.SetActive(false); connectedPanel.SetActive(false); readyPanel.SetActive(false); pickMatchPanel.SetActive(false); changeServerPanel.SetActive(false); connectedServerPanel.SetActive(false); connectingClient.text = "Connecting to " + manager.networkAddress + ":" + manager.networkPort + ".."; } } else { if (NetworkServer.active) { startPanel.SetActive(false); connectPanel.SetActive(false); mmPanel.SetActive(false); connectedPanel.SetActive(true); connectedServerPanel.SetActive(false); readyPanel.SetActive(false); pickMatchPanel.SetActive(false); changeServerPanel.SetActive(false); string serverMsg = "Server: port=" + manager.networkPort; if (manager.useWebSockets) { serverMsg += " (Using WebSockets)"; } //GUI.Label(new Rect(xpos, ypos, 300, 20), serverMsg); } if (manager.IsClientConnected()) { connectedClient.text = "Client: address=" + manager.networkAddress + " port=" + manager.networkPort; } } if (manager.IsClientConnected() && !ClientScene.ready) { startPanel.SetActive(false); connectPanel.SetActive(false); mmPanel.SetActive(false); connectedPanel.SetActive(false); connectedServerPanel.SetActive(false); readyPanel.SetActive(true); pickMatchPanel.SetActive(false); changeServerPanel.SetActive(false); } if (NetworkServer.active || manager.IsClientConnected()) { startPanel.SetActive(false); connectPanel.SetActive(false); mmPanel.SetActive(false); connectedServerPanel.SetActive(true); connectedPanel.SetActive(false); readyPanel.SetActive(false); pickMatchPanel.SetActive(false); changeServerPanel.SetActive(false); } if (!NetworkServer.active && !manager.IsClientConnected() && noConnection) { if (manager.matchMaker != null) { if (manager.matchInfo == null) { if (manager.matches == null) { startPanel.SetActive(false); connectPanel.SetActive(false); mmPanel.SetActive(true); connectedPanel.SetActive(false); readyPanel.SetActive(false); pickMatchPanel.SetActive(false); changeServerPanel.SetActive(false); connectedServerPanel.SetActive(false); manager.matchName = matchNameField.text; } else { startPanel.SetActive(false); connectPanel.SetActive(false); mmPanel.SetActive(true); connectedPanel.SetActive(false); readyPanel.SetActive(false); pickMatchPanel.SetActive(true); changeServerPanel.SetActive(false); connectedServerPanel.SetActive(false); /* for (int i = 0; i < manager.matches.Count; i++) * { * var match = manager.matches[i]; * if (GUI.Button(new Rect(xpos, ypos, 200, 20), "Join Match:" + match.name)) * { * manager.matchName = match.name; * manager.matchMaker.JoinMatch(match.networkId, "", "", "", 0, 0, manager.OnMatchJoined); * } * ypos += spacing; * }*/ } } if (m_ShowServer) { startPanel.SetActive(false); connectPanel.SetActive(false); mmPanel.SetActive(true); connectedPanel.SetActive(false); readyPanel.SetActive(false); pickMatchPanel.SetActive(false); changeServerPanel.SetActive(true); connectedServerPanel.SetActive(false); ypos += spacing; } //GUI.Label(new Rect(xpos, ypos, 300, 20), "MM Uri: " + manager.matchMaker.baseUri); } } }