protected override void OnClientDisconnectedFromHost(NetworkConnection conn, out SceneChangeOption sceneChange) { base.OnClientDisconnectedFromHost(conn, out sceneChange); Debug.Log("OnClientDisconnectedFromHost"); DisablePlayerObjects(); FindNewHost(out m_NewHostInfo, out autoNetworkManager.isHost); Debug.Log("New host :- " + autoNetworkManager.isHost); if (autoNetworkManager.isHost) { BecomeNewHost(autoNetworkManager.networkPort); discovery.StartAsServer(); Debug.Log("You become a new host at port :- " + autoNetworkManager.networkPort); } else { Reset(this.oldServerConnectionId); waitingReconnectToNewHost = true; autoNetworkManager.networkAddress = m_NewHostInfo.address; autoNetworkManager.client.ReconnectToNewHost(m_NewHostInfo.address, autoNetworkManager.networkPort); Debug.Log("You become a new client reconnect port -------> " + autoNetworkManager.networkPort); Debug.Log("new server ip :- " + m_NewHostInfo.address); } }
protected override void OnClientDisconnectedFromHost(NetworkConnection conn, out SceneChangeOption sceneChange) { sceneChange = SceneChangeOption.StayInOnlineScene; PeerInfoMessage hostInfo; bool newHost; if (FindNewHost(out hostInfo, out newHost)) { newHostAddress = hostInfo.address; if (newHost) { waitingToBecomeNewHost = true; } else { waitingReconnectToNewHost = true; } } else { if (LogFilter.logError) { Debug.LogError("No Host found."); } NetworkManager.singleton.SetupMigrationManager(null); NetworkManager.singleton.StopHost(); Reset(ClientScene.ReconnectIdInvalid); } //if (LogFilter.logDebug) Debug.Log("BecomeHost: " + waitingToBecomeNewHost + ", ReconnectToNewHost: " + waitingReconnectToNewHost); if (waitingToBecomeNewHost) { BecomeNewHost(NetworkManager.singleton.networkPort); } else if (waitingReconnectToNewHost) { Reset(oldServerConnectionId); Reset(ClientScene.ReconnectIdHost); NetworkManager.singleton.networkAddress = newHostAddress; NetworkManager.singleton.client.ReconnectToNewHost(newHostAddress, NetworkManager.singleton.networkPort); } }
protected override void OnClientDisconnectedFromHost(NetworkConnection conn, out SceneChangeOption sceneChange) { base.OnClientDisconnectedFromHost(conn, out sceneChange); if (m_WaitingToBecomeNewHost) { if (NetworkManager.singleton != null) { BecomeNewHost(NetworkManager.singleton.networkPort); } else { Debug.LogWarning("MigrationManager Client BecomeNewHost - No NetworkManager."); } } else if (m_WaitingReconnectToNewHost) { Reset(m_OldServerConnectionId); if (NetworkManager.singleton != null) { NetworkManager.singleton.networkAddress = m_NewHostAddress; NetworkManager.singleton.client.ReconnectToNewHost(m_NewHostAddress, NetworkManager.singleton.networkPort); } else { Debug.LogWarning("MigrationManager Client reconnect - No NetworkManager."); } } else { bool youAreNewHost; if (FindNewHost(out m_NewHostInfo, out youAreNewHost)) { m_NewHostAddress = m_NewHostInfo.address; if (youAreNewHost) { m_WaitingToBecomeNewHost = true; } else { m_WaitingReconnectToNewHost = true; } } } }
protected override void OnClientDisconnectedFromHost(NetworkConnection conn, out SceneChangeOption sceneChange) { //base.OnClientDisconnectedFromHost(conn, out sceneChange); sceneChange = SceneChangeOption.StayInOnlineScene; PeerInfoMessage infoMessage; bool isNewHost; if (FindNewHost(out infoMessage, out isNewHost)) { if (isNewHost) { BecomeNewHost(infoMessage.port); } else { reconnectCoroutine = AttemptReconnect(reconnectDelay, infoMessage.address, infoMessage.port); StartCoroutine(reconnectCoroutine); } } }
protected virtual void OnClientDisconnectedFromHost(NetworkConnection conn, out SceneChangeOption sceneChange) { sceneChange = SceneChangeOption.StayInOnlineScene; }
public void ClientHost() { SceneChangeOption option = SceneChangeOption.StayInOnlineScene; OnClientDisconnectedFromHost(client.connection, out option); }
void OnGUI() { if (!showGUI) { return; } SChange = SceneChangeOption.StayInOnlineScene; if (lobbyreconnect == true) { if (manager.disconnectedHost == true) { if (lobbyrepick == false) { if (GUI.Button(new Rect(5, 20, 80, 20), "<<-back")) { lobbyrepick = true; } } if (lobbyrepick == true) { if (GUI.Button(new Rect(5, 20, 80, 20), "<<-back")) { lobbyrepick = false; } } if (NetworkClient.active) { if (lobbyrepick == true) { LobbyrepicknewHost(); } if (this.waitToBecomeNewHost == true) { LobbyYouArenewHost(); } } if (NetworkServer.active) { if (lobbyrepick) { repicknewHost(); } if (this.waitReconnectToNewHost == true) { LobbyReconnectAsClient(); } } } } if (NetworkServer.active || NetworkClient.active) { if (lobbyreconnect == false) { if (repick == false) { if (GUI.Button(new Rect(5, 20, 80, 20), "<<-back")) { repick = true; } } else { if (GUI.Button(new Rect(5, 20, 80, 20), "<<-back")) { repick = false; } } if (NetworkServer.active) { if (repick == true) { repicknewHost(); } if (this.waitReconnectToNewHost == true) { print("waitReconnectToNewHost=true"); ReconnectAsClient(); } } if (NetworkClient.active) { if (repick == true) { picknewHost(); } if (this.waitToBecomeNewHost == true) { GUI.Label(new Rect(720, 20, 140, 20), "You are new host"); YouArenewHost(); } } } } }
/// <summary> /// Override for the callback received when a connection to the match host is lost. /// Integrates the host migration workflow found in the UNET source, but in an automated manner. /// </summary> protected override void OnClientDisconnectedFromHost(NetworkConnection conn, out SceneChangeOption sceneChange) { //stay in the current game scene sceneChange = SceneChangeOption.StayInOnlineScene; //determine the new host PeerInfoMessage hostInfo; bool newHost; if (FindNewHost(out hostInfo, out newHost)) { //if this client is determined to be the new host, wait for the switch //otherwise wait for another client taking over the hosting functionality newHostAddress = hostInfo.address; if (newHost) { waitingToBecomeNewHost = true; } else { waitingReconnectToNewHost = true; } } else { //we didn't find a host, leave the game if (LogFilter.logError) { Debug.LogError("No Host found."); } NetworkManager.singleton.SetupMigrationManager(null); NetworkManager.singleton.StopHost(); Reset(ClientScene.ReconnectIdInvalid); } if (LogFilter.logDebug) { Debug.Log("BecomeHost: " + waitingToBecomeNewHost + ", ReconnectToNewHost: " + waitingReconnectToNewHost); } //we were chosen for hosting the new game if (waitingToBecomeNewHost) { //take over hosting functionality bool success = BecomeNewHost(NetworkManager.singleton.networkPort); if (success && (NetworkMode)PlayerPrefs.GetInt(PrefsKeys.networkMode) == NetworkMode.LAN) { NetworkDiscovery discovery = GetComponent <NetworkDiscovery>(); discovery.Initialize(); discovery.StartAsServer(); } } else if (waitingReconnectToNewHost) { //clear old host network data Reset(oldServerConnectionId); Reset(ClientScene.ReconnectIdHost); //choose different host address and reconnect NetworkManager.singleton.networkAddress = newHostAddress; NetworkManager.singleton.client.ReconnectToNewHost(newHostAddress, NetworkManager.singleton.networkPort); } }
protected override void OnClientDisconnectedFromHost(NetworkConnection conn, out SceneChangeOption sceneChange) { Debug.Log("###### OnClientDisconnectedFromHost"); base.OnClientDisconnectedFromHost(conn, out sceneChange); }
private void Start() { _sceneChange = SceneChangeOption.StayInOnlineScene; }
protected virtual void OnClientDisconnectedFromHost(NetworkConnection conn, out SceneChangeOption sceneChange) { sceneChange = SceneChangeOption.StayInOnlineScene; }