public IEnumerator WaitForConnection(RoomAccessPacket access) { NetworkManager = NetworkManager ?? FindObjectOfType <NetworkManager>(); Logger.Debug("Connecting to game server... " + NetworkManager.networkAddress + ":" + NetworkManager.networkPort); var timeUntilTimeout = ConnectionTimeout; // Wait until we connect while (!NetworkManager.IsClientConnected()) { yield return(null); timeUntilTimeout -= Time.deltaTime; if (timeUntilTimeout < 0) { Logger.Warn("Client failed to connect to game server: " + access); OnFailedToConnect(); yield break; } } Logger.Info("Connected to game server, about to send access"); // Connected, send the token //NetworkManager.client.connection.Send(UnetGameRoom.AccessMsgType, new StringMessage(access.Token)); NetworkManager.client.connection.Send(0, UnetGameRoom.AccessMsgType, 0); // While connected while (NetworkManager.IsClientConnected()) { yield return(null); } // At this point, we're no longer connected if (DisconnectedScene.IsSet()) { SceneManager.LoadScene(DisconnectedScene.SceneName); } }
public IEnumerator WaitForConnection(RoomAccessPacket access) { NetworkManager = NetworkManager ?? FindObjectOfType <NetworkManager>(); // Debug.LogError("Connecting to game server... " + NetworkManager.networkAddress + ":" + NetworkManager.networkPort); var timeUntilTimeout = ConnectionTimeout; // Wait until we connect while (!NetworkManager.IsClientConnected()) { yield return(null); timeUntilTimeout -= Time.deltaTime; if (timeUntilTimeout < 0) { Logger.Warn("Client failed to connect to game server: " + access); OnFailedToConnect(); yield break; } } Logger.Info("Connected to game server, about to send access"); // Connected, send the token showDissconnectMsg = true; NetworkManager.client.connection.Send(AlbotGameRoom.AccessMsgType, new StringMessage(access.Token)); // While connected while (NetworkManager.IsClientConnected()) { yield return(null); } // At this point, we're no longer connected if (DisconnectedScene.IsSet() && showDissconnectMsg) { AlbotDialogBox.activateButton(() => { ClientUIStateManager.requestGotoState(ClientUIStates.GameLobby); }, DialogBoxType.GameServerConnLost, "Connection to the gameserver was lost!", "Return to lobby"); } }