/// <summary> /// 创建Json /// </summary> private void LoadConfigs() { for (int i = 0; i < pConfigPaths.Count; ++i) { string strPath = pConfigPaths[i]; AnalysisConfig(strPath); } // JsonData CmpJD = new JsonData(); for (int j = 0; j < m_pOldNormCmp.Count; ++j) { OldNormCmpData oncd = m_pOldNormCmp[j]; JsonData jd = new JsonData(); jd["CompType"] = "normal"; jd["CompCode"] = oncd.t; jd["p"] = oncd.p; jd["e"] = oncd.e; jd["s"] = oncd.s; CmpJD.Add(jd); } for (int k = 0; k < m_pOldWallCmp.Count; ++k) { OldWallCmpData oncd = m_pOldWallCmp[k]; JsonData jd = new JsonData(); jd["CompType"] = "wall"; jd["wallType"] = oncd.wallType; jd["wallLength"] = oncd.wallLength; jd["firstPoint"] = oncd.firstPoint; jd["pointList"] = oncd.pointList; jd["needScaleTail"] = "true"; CmpJD.Add(jd); } for (int i = 0; i < m_pOldGreenMeshCmp.Count; ++i) { OldWallCmpData oncd = m_pOldGreenMeshCmp[i]; JsonData jd = new JsonData(); jd["CompType"] = "greenMesh"; jd["wallType"] = "null"; jd["wallLength"] = oncd.wallLength; jd["firstPoint"] = oncd.firstPoint; jd["pointList"] = oncd.pointList; string strIndex = oncd.wallType.Substring(10, 3); jd["greenMeshMat"] = null; CmpJD.Add(jd); } JsonData blockJD = new JsonData(); blockJD["compList"] = CmpJD; //Json 数据保存到本地:JsonData转string:ToJson Helper.SaveInfo(blockJD.ToJson(), "解析出来的临时数据", Application.streamingAssetsPath); }
/// <summary> /// 解析Json /// </summary> /// <param name="_strPath"></param> private void AnalysisConfig(string _strPath) { Debug.LogWarning("加载Json:" + _strPath); JsonData ConfigJD = JsonUtils.ReadJsonFile(_strPath); if (ConfigJD != null) { JsonData wallJD = ConfigJD.ReadJsonData("wall"); JsonData normalJD = ConfigJD.ReadJsonData("component"); if (normalJD != null) { for (int i = 0; i < normalJD.Count; ++i) { JsonData curJd = normalJD[i]; OldNormCmpData oncd = new OldNormCmpData(); oncd.p = curJd.ReadString("p"); oncd.e = curJd.ReadString("e"); oncd.s = curJd.ReadString("s"); oncd.t = curJd.ReadString("t"); m_pOldNormCmp.Add(oncd); } } if (wallJD != null) { for (int j = 0; j < wallJD.Count; ++j) { JsonData curJd = wallJD[j]; OldWallCmpData owcd = new OldWallCmpData(); owcd.wallLength = curJd.ReadString("wallLength"); string strType = curJd.ReadString("wallType"); owcd.wallType = curJd.ReadString("wallType"); owcd.firstPoint = curJd.ReadString("firstPoint"); owcd.pointList = curJd.ReadJsonData("pointList"); if (owcd.pointList != null && owcd.pointList.Count > 1) { if (strType.StartsWith("GreenMesh")) { m_pOldGreenMeshCmp.Add(owcd); } else { m_pOldWallCmp.Add(owcd); } } } } } }