Beispiel #1
0
        private static void fixMaterials(List <Shader> shaders, List <string> importedShaderNames)
        {
            restoring_in_progress = true;

            StreamReader reader = new StreamReader(MATERIALS_BACKUP_FILE_PATH);

            string l;

            while ((l = reader.ReadLine()) != null)
            {
                if (l == "")
                {
                    continue;
                }
                string[] materialData = l.Split(new string[] { ":" }, System.StringSplitOptions.None);
                Material material     = AssetDatabase.LoadAssetAtPath <Material>(AssetDatabase.GUIDToAssetPath(materialData[0]));
                if (importedShaderNames.Contains(materialData[1]))
                {
                    //Debug.Log("Restore this shader: " + materialData[1]);
                    Shader shader = shaders[importedShaderNames.IndexOf(materialData[1])];
                    //Debug.Log("Shader: " + shader.name);
                    material.shader      = shader;
                    material.renderQueue = int.Parse(materialData[2]);
                    Helper.UpdateRenderQueue(material, shader);
                }
            }
            reader.Close();

            restoring_in_progress = false;
            ThryEditor.repaint();
        }
Beispiel #2
0
        public static void restoreAllMaterials()
        {
            if (!File.Exists(MATERIALS_BACKUP_FILE_PATH))
            {
                backupAllMaterials();
                return;
            }
            StreamReader reader = new StreamReader(MATERIALS_BACKUP_FILE_PATH);

            string l;

            while ((l = reader.ReadLine()) != null)
            {
                string[] materialData = l.Split(new string[] { ":" }, System.StringSplitOptions.None);
                Material material     = AssetDatabase.LoadAssetAtPath <Material>(AssetDatabase.GUIDToAssetPath(materialData[0]));
                Shader   shader       = Shader.Find(materialData[1]);
                material.shader      = shader;
                material.renderQueue = int.Parse(materialData[2]);
                Helper.UpdateRenderQueue(material, shader);
            }
            ThryEditor.repaint();

            reader.Close();
        }