public void SetWhiteMaterial() { BigWorldData bigdata = new BigWorldData(); bigdata.bigdatas = new List <BigWorldModelData>(); int childCount = m_Root.transform.childCount; for (int i = 0; i < childCount; i++) { Transform childTran = m_Root.transform.GetChild(i); if (childTran.name.Contains("Group")) { MeshRenderer[] renders = childTran.GetComponentsInChildren <MeshRenderer>(); for (int j = 0; j < renders.Length; j++) { if (renders[j].name.Equals("wall")) { continue; } BigWorldModelData modelData = new BigWorldModelData(); modelData.path = childTran.name + "/" + renders[j].name; modelData.mat = renders[j].sharedMaterial.name + ".mat"; bigdata.bigdatas.Add(modelData); renders[j].sharedMaterial = this.m_whiteMat; } } } AssetDatabase.SaveAssets(); string jsonStr = fastJSON.JSON.ToJSON(bigdata); StreamWriter writer = new StreamWriter(CreateWhiteModel.BigWorldInfo, false, System.Text.Encoding.Default); writer.Write(jsonStr); writer.Close(); }
public void SetModelMaterial() { StreamReader reader = new StreamReader(CreateWhiteModel.BigWorldInfo); string jsonStr = reader.ReadToEnd(); reader.Close(); BigWorldData bigData = fastJSON.JSON.ToObject <BigWorldData>(jsonStr); for (int i = 0; i < bigData.bigdatas.Count; i++) { Transform trans = this.m_Root.transform.Find(bigData.bigdatas[i].path); if (trans == null) { Debug.LogError("city node error : " + bigData.bigdatas[i].path); continue; } MeshRenderer render = trans.GetComponent <MeshRenderer>(); Material mat = AssetDatabase.LoadAssetAtPath <Material>(CreateWhiteModel.MaterialRootPath + bigData.bigdatas[i].mat); render.sharedMaterial = mat; } }