Exemple #1
0
        public override void Parse(UserClient user, byte moduleCode, byte operationCode, OperationRequest operationRequest, SendParameters sendParameters)
        {
            //构建消息
            S2CMessage msg = new S2CMessage((byte)Module.ServerList, (byte)ServerListOperation.FetchAllServer);

            //读取配置文件
            string       json    = File.ReadAllText(Global.AppRootFolder + "\\serverlist.json");
            ServerListVo svrinfo = JsonMapper.ToObject <ServerListVo>(json);

            //随机服务器状态
            foreach (ServerItemVo item in svrinfo.servers)
            {
                item.status = new Random().Next(1, 3);
            }
            //添加到发送字典
            msg.Add(1, JsonMapper.ToJson(svrinfo));

            //发送反馈
            OperationResponse response = new OperationResponse((byte)moduleCode, msg);

            user.SendOperationResponse(response, sendParameters);

            Global.Info("收到客户端消息" + moduleCode + "," + operationCode);
        }
    private void ServerListUI_OnParseHandler1(byte moduleCode, byte opCode, ExitGames.Client.Photon.OperationResponse response)
    {
        HandlerManager.GetInstance().Remove((byte)Module.ServerList, (byte)ServerListOperation.FetchAllServer);
        //获取服务器返回的信息
        string json = response.Parameters[(byte)1].ToString();

        //转为json
        ServerListVo list = JsonReader.Deserialize <ServerListVo>(json);



        ServerItemUI[] oldSvrs = m_content.GetComponentsInChildren <ServerItemUI>();
        foreach (var item in oldSvrs)
        {
            Destroy(item.gameObject);
        }


        //根据服务器数据生成服务器列表
        foreach (ServerItemVo svr in list.servers)
        {
            ServerItemUI mSvr = UIManager.GetInstance().GetNewUI <ServerItemUI>();
            mSvr.SetServerData(svr);
            mSvr.OnSelectHandler += MSvr_OnSelectHandler;
            mSvr.transform.SetParent(m_content);
        }

        //根据内容调整滚动区域大小
        RectTransform rtf = m_content as RectTransform;

        rtf.sizeDelta = new Vector2(561, Mathf.CeilToInt((float)list.servers.Length / 2) * 90);

        ScrollRect sr = GameObject.FindObjectOfType <ScrollRect>();

        sr.verticalNormalizedPosition = 1;
    }