コード例 #1
0
ファイル: NetworkModel.cs プロジェクト: 6a/robot-rumble
        private void OnRoomFilled()
        {
            PhotonNetwork.room.IsOpen = PhotonNetwork.room.IsVisible = false;

            Models.Get <IGamestateModel>().SetState(Gamestate.ReadyCheck);

            var players = new Dictionary <int, string>();

            foreach (var player in PhotonNetwork.playerList)
            {
                Debug.Log($"NickName: {player.NickName} | ID: {player.ID} | UserId: {player.UserId}");
                players.Add(player.ID, player.NickName);
            }

            var sortedPlayers = from pair in players orderby pair.Key ascending select pair;

            PlayerDetails[] playerDetailsArray = new PlayerDetails[sortedPlayers.Count()];
            for (int i = 0; i < sortedPlayers.Count(); i++)
            {
                var details = new PlayerDetails(sortedPlayers.ElementAt(i).Key, i, sortedPlayers.ElementAt(i).Value);
                playerDetailsArray[i] = details;
                if (details.Name == PhotonNetwork.playerName)
                {
                    LocalPlayerID = i;
                }
            }

            CurrentPlayers = playerDetailsArray;

            if (_readyCheckCoroutine != null)
            {
                _co.StopCoroutine(_readyCheckCoroutine);
            }
            _readyCheckCoroutine = _co.StartCoroutine(PlayerReadyCountdown(READY_CHECK_TIME));
            SessionSeed          = SeedGenerator.StringToSeed(PhotonNetwork.room.Name);
            EventDispatcher.Broadcast(RoomFilled, playerDetailsArray);
        }