public static void BackupAllMaterials() { if (restoring_in_progress) { return; } EditorUtility.DisplayProgressBar("Backup materials", "", 0); Dictionary <string, string> materials_to_backup = new Dictionary <string, string>(); string[] materialGuids = AssetDatabase.FindAssets("t:material"); for (int mG = 0; mG < materialGuids.Length; mG++) { Material material = AssetDatabase.LoadAssetAtPath <Material>(AssetDatabase.GUIDToAssetPath(materialGuids[mG])); if (!MaterialShaderBroken(material)) { materials_to_backup[materialGuids[mG]] = ShaderHelper.getDefaultShaderName(material.shader.name); } EditorUtility.DisplayProgressBar("Backup materials", material.name, (float)(mG + 1) / materialGuids.Length); } FileHelper.SaveDictionaryToFile(PATH.MATERIALS_BACKUP_FILE, materials_to_backup); EditorUtility.ClearProgressBar(); }