Пример #1
0
 void Update()
 {
     playerCount = 0;
     for (int i = 0; i < networkLobbyManager.lobbySlots.Length; i++)
     {
         if (networkLobbyManager.lobbySlots[i] != null)
         {
             playerCount += 1;
         }
     }
     // Use a timer control to update and refresh the available games list from mm server
     refreshTimer -= Time.deltaTime;
     if (refreshTimer <= 0)
     {
         //Reset the timer
         refreshTimer   = refreshRate;
         availableGames = 0;
         // Update and refresh the matchmaking settings
         if (networkLobbyManager.matches != null && networkLobbyManager.matchInfo == null)
         {
             FindGames();
             UpdateMatchInfo();
         }
     }
     networkLobbyManager.networkAddress = "127.0.0.1";
     if (NetworkServer.active || NetworkClient.active)
     {
         lobbyHUDReference.disconnectButton.SetActive(true);
     }
     UpdateUI();
     if (joinedMatch)
     {
         lobbyHUDReference.playerCountText.text = playerCount.ToString() + " / " + (networkLobbyManager.lobbySlots.Length - 1).ToString() + " Players";
     }
     else
     {
         lobbyHUDReference.playerCountText.text = playerCount.ToString() + " / " + (networkLobbyManager.lobbySlots.Length - 1).ToString() + " Players";
     }
     if (joinedMatch && lobbyHUDReference.lobbyWindow.activeInHierarchy && !joinedLobby)
     {
         joinGameTimeoutTimer += 1 * Time.deltaTime;
         if (playerCount > 0 && !loadingMultiplayerScene)
         {
             lobbyHUDReference.findMatchWindow.SetActive(false);
             lobbyHUDReference.matchmakingImage.SetActive(true);
             lobbyHUDReference.loadingImage.SetActive(false);
             joinedLobby = true;
         }
         else if (joinGameTimeoutTimer >= joinGameTimeout)
         {
             joinGameTimeoutTimer = 0f;
             lobbyHUDReference.loadingImage.SetActive(false);
             garageObjects.SetActive(true);
             Button_BackLobby();
             garageManager.Button_BackLobby();
             lobbyHUDReference.hostCancelWindow.SetActive(true);
             Debug.Log("Join Game Timeout");
         }
     }
     else if (!joinedMatch && lobbyHUDReference.lobbyWindow.activeInHierarchy)
     {
         if (playerCount > 0 && !loadingMultiplayerScene)
         {
             lobbyHUDReference.findMatchWindow.SetActive(false);
             lobbyHUDReference.matchmakingImage.SetActive(true);
             lobbyHUDReference.loadingImage.SetActive(false);
         }
     }
     else if (playerCount == 0 && joinedMatch && lobbyHUDReference.lobbyWindow.activeInHierarchy)
     {
         garageObjects.SetActive(true);
         Button_BackLobby();
         garageManager.Button_BackLobby();
         lobbyHUDReference.hostCancelWindow.SetActive(true);
     }
 }