Beispiel #1
0
    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;
    }
Beispiel #3
0
    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);
    }
Beispiel #5
0
    /// <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();
    }