public void TeamChange(int OriginTeam, int idx) { LHLobbyPlayer player = new LHLobbyPlayer(); switch (OriginTeam) { case 1: player = team_1[idx]; if (team_2.Contains(player) || team_2.Count > 3) { return; } player.transform.SetParent(Team_2_playerListContentTransform, false); player.playerTeam = 2; team_2.Add(player); RemovePlayer(OriginTeam, player); //去掉原来位置上的玩家 player.teamPos = team_2.IndexOf(player); break; case 2: player = team_2[idx]; if (team_1.Contains(player) || team_1.Count > 3) { return; } player.transform.SetParent(Team_1_playerListContentTransform, false); player.playerTeam = 1; team_1.Add(player); RemovePlayer(OriginTeam, player); //去掉原来位置上的玩家 player.teamPos = team_1.IndexOf(player); break; } PlayerListModified(); }
public override void OnLobbyServerSceneLoadedForPlayer(NetworkManager manager, GameObject lobbyPlayer, GameObject gamePlayer) { LHLobbyPlayer lobby = lobbyPlayer.GetComponent <LHLobbyPlayer>(); LHNetworkPlayer player = gamePlayer.GetComponent <LHNetworkPlayer>(); player.name = lobby.name; player.playerName = lobby.playerName; player.team = lobby.playerTeam; //player.charactor = lobby.playerCharactor; }
public void RemovePlayer(int teamIdx, LHLobbyPlayer player) { switch (teamIdx) { case 1: team_1.Remove(player); break; case 2: team_2.Remove(player); break; } PlayerListModified(); }
//如果我们没有足够的玩家,我们想禁用按钮JOIN //但OnLobbyClientConnect未在主机玩家上调用。 所以我们重写lobbyPlayer的创建 public override GameObject OnLobbyServerCreateLobbyPlayer(NetworkConnection conn, short playerControllerId) { //print("服务器创建Lobby玩家"); GameObject obj = Instantiate(lobbyPlayerPrefab.gameObject) as GameObject; LHLobbyPlayer newPlayer = obj.GetComponent <LHLobbyPlayer>(); newPlayer.ToggleJoinButton(numPlayers + 1 >= minPlayers); for (int i = 0; i < lobbySlots.Length; ++i) { LHLobbyPlayer p = lobbySlots[i] as LHLobbyPlayer; if (p != null) { p.RpcUpdateRemoveButton(); p.ToggleJoinButton(numPlayers + 1 >= minPlayers); } } return(obj); }
/// <summary> /// 添加玩家,lobby玩家调用自行添加 /// </summary> /// <param name="player"></param> public void AddPlayer(LHLobbyPlayer player) { if (team_1.Contains(player) || team_2.Contains(player)) { return; } if (team_1.Count <= team_2.Count && team_1.Count < 4) { team_1.Add(player); player.transform.SetParent(Team_1_playerListContentTransform, false); player.teamPos = team_1.IndexOf(player); player.playerTeam = 1; } else { team_2.Add(player); player.transform.SetParent(Team_2_playerListContentTransform, false); player.teamPos = team_2.IndexOf(player); player.playerTeam = 2; } PlayerListModified(); }