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(); }
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(); }