Exemplo n.º 1
0
    /// <summary>
    /// 上传组件配置
    /// </summary>
    private void UpdateCompConfig(Action _cb = null)
    {
        if (m_qUpdateComp.Count > 0)
        {
            CompConfigData ccd = m_qUpdateComp.Dequeue() as CompConfigData;

            HttpService.SaveCompConfig(ccd.m_strCode, ccd.m_jsData.ToJson(), (bS, resp) => {
                if (bS)
                {
                    Debug.LogWarning(string.Format("组件:{0},配置更新成功:{1}", ccd.m_strCode, resp.WwwText));
                }
                else
                {
                    Debug.LogError(string.Format("组件:{0},配置更新失败:{1}", ccd.m_strCode, resp.Error));
                    JsonData jd = new JsonData();
                    jd["Code"]  = ccd.m_strCode;

                    // 上传失败的,先保存下来
                    if (code_CompConfig.ContainsKey(ccd.m_strCode) && !m_pUpdateErComp.Contains(ccd))
                    {
                        m_pUpdateErComp.Add(ccd);
                    }
                }

                UpdateCompConfig(_cb);
                Debug.Log(string.Format("剩余组件个数:{0}", m_qUpdateComp.Count));
            });
        }
        else
        {
            // 弹框提示失败组件,点击重新上传
            if (m_pUpdateErComp.Count > 0)
            {
                string strTips = string.Format("组件上传失败个数:{0} /n点击【确定】按钮,失败重传!", m_pUpdateErComp.Count);
                LogicUtils.Instance.OnAlert(strTips, () => {
                    m_qUpdateComp = new Queue <CompConfigData>(m_pUpdateErComp);
                    UpdateCompConfig(_cb);
                });
            }
            else
            {
                if (_cb != null)
                {
                    _cb();
                }
                LogicUtils.Instance.OnAlert("组件配置上传完成!");
            }
        }
    }
Exemplo n.º 2
0
    /// <summary>
    /// 修改,新增到服务器
    /// </summary>
    /// <param name="_msg"></param>
    private void SaveToServer(Message _msg)
    {
        string strNewTag      = _msg["tag"] as string;
        string strNewShowName = _msg["name"] as string;

        m_currentCom.OnAffirm(m_rNewModel, m_rNewImg, strNewTag, strNewShowName);

        // 遍历所有的需要更新的组件
        m_pMemeryRes.Clear();
        m_qUpdateComp   = new Queue <CompConfigData>();
        code_CompConfig = new Dictionary <string, CompConfigData>();
        m_pUpdateErComp = new List <CompConfigData>();

        for (int i = 0; i < m_pComProperty.Count; i++)
        {
            ComProperty cpp = m_pComProperty[i];
            if (cpp.m_bNeedUpdate)
            {
                CompConfigData ccd = new CompConfigData();
                ccd.m_jsData  = cpp.m_infoJson;
                ccd.m_strCode = cpp.m_strCode;
                m_qUpdateComp.Enqueue(ccd);
                code_CompConfig.AddOrReplace(ccd.m_strCode, ccd);

                if (cpp.m_rNewImg != null)
                {
                    m_pMemeryRes.Add(cpp.m_rNewImg);
                }
                if (cpp.m_rNewModel != null)
                {
                    m_pMemeryRes.Add(cpp.m_rNewModel);
                }
            }
        }

        // 先上传资源,再上传配置
        UpdateRes(() => {
            UpdateCompConfig(() => {
                // 刷新列表
                RefreshCom();
            });
        });
    }
Exemplo n.º 3
0
    /// <summary>
    /// 解析配置
    /// </summary>
    /// <param name="_strJson"></param>
    private void ReadCompDataForUpdate(string _strJson)
    {
        JsonData ConfigJD = JsonMapper.ToObject(_strJson);

        JsonData jdNewCompConfig = JsonUtils.EmptyJsonArray;

        int           nCount = 0;
        StringBuilder sb     = new StringBuilder();

        // 所有组件分类
        for (int iClass = 0, lenClass = ConfigJD.Count; iClass < lenClass; iClass++)
        {
            JsonData classJD = ConfigJD[iClass];
            //string strKey = classJD.ReadString("name");
            string strInfo = classJD.ReadString("info");

            JsonData info = JsonMapper.ToObject(strInfo);
            //string strTag = info.ReadString("tag");
            //string strShowName = info.ReadString("name");
            //string strPicName = info.ReadString("picName");
            //string strPicCrc = info.ReadString("picCrc");
            string strCode = info.ReadString("code");

            string strData = info.ReadString("data");
            if (string.IsNullOrEmpty(strData))
            {
                Debug.LogError("Json Error:" + classJD.ToJson());
            }
            JsonData jdData       = JsonMapper.ToObject(strData);
            JsonData dataJD       = jdData;
            string   strLowerCode = strCode.ToLower();

            if (resName_Crc.ContainsKey(strLowerCode))
            {
                JsonData jdNew = resName_Crc[strLowerCode];

                JsonData jdNewData = JsonUtils.EmptyJsonArray;

                CompConfigData ccd = new CompConfigData();
                ccd.m_strCode = strCode;

                if (dataJD.Count > 0)
                {
                    JsonData jdFbx = dataJD[0];
                    jdFbx["fileName"] = jdNew.ReadString("Name");
                    jdFbx["fileCrc"]  = jdNew.ReadString("Crc");
                    jdFbx["type"]     = "assetbundle";
                    jdFbx["children"] = JsonUtils.EmptyJsonArray;
                    jdNewData.Add(jdFbx);

                    info["data"]    = jdNewData.ToJson();
                    classJD["info"] = info.ToJson();
                    jdNewCompConfig.Add(classJD);
                    nCount++;
                    resName_Crc.Remove(strLowerCode);
                    ccd.m_jsData = info;

                    code_CompConfig.Add(strCode, ccd);

                    m_qUpdateComp.Enqueue(ccd);
                }
            }
        }
        sb.Append("-------------------------新模型匹配失败---------------------------------\n\n");
        foreach (var item in resName_Crc)
        {
            sb.Append(item.Key);
            sb.Append("\n");
        }
        Utils.SaveInfo(jdNewCompConfig.ToJson(), "新组件AB配置");
        Debug.LogWarning(string.Format("替换成功个数:{0}", nCount));
        Utils.SaveInfo(sb.ToString(), "替换失败列表");

        // 测试
        Debug.Log("读取CompLibConfig完成!");

        m_pUpdateErComp.Clear();

        UpdateCompConfig(() => {
            // 刷新组件列表
            RefreshCom();
        });
    }