public static void StartGame(string gameId, LobbyGameDetailsModel gameDetails) { Instance.currentGameId = gameId; Instance.gameDetails = gameDetails; SceneManager.LoadSceneAsync(1, LoadSceneMode.Single); }
private void GameDetailsCallback(LobbyGameDetailsModel model) { bool isMeJoined = false; bool isMeReady = false; bool isAllReady = true; if (model == null || model.GameState == GameRoomState.Closed) { OnBtnLeave(); return; } if (model.GameState == GameRoomState.Started) { Debug.Log("Load game field scene."); GameFieldManager.StartGame(gameId, model); gameObject.SetActive(false); return; } foreach (Transform child in gamePlayersContent.transform) { Destroy(child.gameObject); } txtGameId.text = model.GameState + " game #" + model.GameId.Substring(24); isAllReady = model.JoinedPlayers >= 2; foreach (var gamePlayer in model.Players) { var item = GameObject.Instantiate(gamePlayerPrefab, gamePlayersContent.transform); item.transform.localScale = Vector3.one; item.txtPlayerName.text = gamePlayer.PlayerName; item.playerSign.sprite = item.playerSigns[gamePlayer.Sign]; item.readyStatusObject.SetActive(gamePlayer.IsReady); item.waitingStatusObject.SetActive(!gamePlayer.IsReady); if (!isMeJoined && gamePlayer.PlayerId == myPlayerId) { isMeJoined = true; } if (!isMeReady && isMeJoined && gamePlayer.PlayerId == myPlayerId && gamePlayer.IsReady) { isMeReady = true; } isAllReady = isAllReady && gamePlayer.IsReady; } btnStart.gameObject.SetActive(model.CreatedBy == myPlayerId); btnStart.interactable = isAllReady; btnReady.gameObject.SetActive(!isMeReady && isMeJoined); btnJoin.gameObject.SetActive(!isMeJoined); btnLeave.gameObject.SetActive(isMeJoined); }