Example #1
0
    void UpdateUI()
    {
        if (bindAgent == null)
        {
            infoLayer.SetActive(true);
            infoText.text = "未连接";
        }
        else
        {
            if (string.IsNullOrEmpty(bindAgent.serverInfo.serverName))
            {
                infoLayer.SetActive(true);
                infoText.text = "正在等待服务器响应...\n" + bindAgent.ip + ":" + bindAgent.port.ToString();
            }
            else
            {
                infoLayer.SetActive(false);

                switch (bindAgent.status)
                {
                case L4D2ServerAgentStatus.Offline:
                    statusText.text = "<color=red>客户端离线</color>";
                    break;

                case L4D2ServerAgentStatus.WaitForChallengeNumber:
                    statusText.text = "<color=red>检查服务器可用性</color>";
                    break;

                case L4D2ServerAgentStatus.OK:
                    statusText.text = "";
                    break;

                case L4D2ServerAgentStatus.NotResponding:
                    statusText.text = "<color=red>未响应</color>";
                    break;

                default: break;
                }

                serverNameText.text = bindAgent.serverInfo.serverName;

                MapContentMapper.MapInfoItem mapInfo = null;
                if (MapContentMapper.ThirdPartyInstance != null)
                {
                    mapInfo = MapContentMapper.ThirdPartyInstance.QueryByMapIndex(bindAgent.serverInfo.serverMap);
                }

                if (string.IsNullOrEmpty(mapInfo.mapCNName))
                {
                    mapInfo = MapContentMapper.OfficialInstance.QueryByMapIndex(bindAgent.serverInfo.serverMap);
                }

                mapCNNameText.text   = mapInfo.mapCNName;
                posterImage.sprite   = mapInfo.mapPosterImage;
                mapIndexText.text    = "地图:" + bindAgent.serverInfo.serverMap;
                playerCountText.text = "玩家:" + bindAgent.serverInfo.players.ToString() + "/" + bindAgent.serverInfo.maxPlayers.ToString();
                ipAddressText.text   = "IP地址:" + bindAgent.ip + ":" + bindAgent.port.ToString();
            }
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (bindAgent == null)
        {
            infoLayer.SetActive(true);
            infoText.text = "未连接";
        }
        else
        {
            if (bindAgent.status != L4D2ServerAgentStatus.OK)
            {
                infoLayer.SetActive(true);
                switch (bindAgent.status)
                {
                case L4D2ServerAgentStatus.Offline:
                    infoText.text = "客户端无法访问网络";
                    break;

                case L4D2ServerAgentStatus.WaitForChallengeNumber:
                    infoText.text = "正在等待服务器响应...\n" + bindAgent.ip + ":" + bindAgent.port.ToString();
                    break;

                case L4D2ServerAgentStatus.NotResponding:
                    infoText.text = "服务器未响应";
                    break;

                default: break;
                }
            }
            else if (string.IsNullOrEmpty(bindAgent.serverInfo.serverName))
            {
                infoLayer.SetActive(true);
                infoText.text = "正在等待服务器响应...\n" + bindAgent.ip + ":" + bindAgent.port.ToString();
            }
            else
            {
                infoLayer.SetActive(false);

                serverNameText.text = bindAgent.serverInfo.serverName;

                if (MapContentMapper.ThirdPartyInstance != null)
                {
                    mapInfo = MapContentMapper.ThirdPartyInstance.QueryByMapIndex(bindAgent.serverInfo.serverMap);
                }

                if (mapInfo == null || string.IsNullOrEmpty(mapInfo.mapCNName))
                {
                    mapInfo = MapContentMapper.OfficialInstance.QueryByMapIndex(bindAgent.serverInfo.serverMap);
                }

                mapCNNameText.text   = mapInfo.mapCNName;
                posterImage.sprite   = mapInfo.mapPosterImage;
                mapIndexText.text    = "地图:" + bindAgent.serverInfo.serverMap;
                playerCountText.text = "玩家:" + bindAgent.serverInfo.players.ToString() + "/" + bindAgent.serverInfo.maxPlayers.ToString();
                statusText.text      = "";


                if (bindAgent.serverInfo.players == 0)
                {
                    playersNameText.text = "当前服务器暂无玩家!";
                }
                else
                {
                    string players = "";
                    foreach (var c in bindAgent.playersInfo.playerInfos)
                    {
                        var name = c.name.Replace("\0", "");//Remove '\0'
                        players += PlayerIDManager.Instance.DecoratePlayerID(name);
                        players += "\n";
                    }
                    if (players.Length >= 1)
                    {
                        players = players.Substring(0, players.Length - 1);
                    }
                    playersNameText.text = players;
                }

                playersNameText.enabled = false;
                playersNameText.enabled = true;
            }
        }
    }