Пример #1
0
        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();
        }
Пример #2
0
        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;
            }
        }