Displays the "save folder" dialog and returns the selected path name.
See Also: SaveFilePanel, OpenFilePanel functions.
Save Folder Panel.
#pragma strict
class SaveFoldersPanelTest extends EditorWindow {
@MenuItem("Examples/Save Folders Panel") static function Init() { var window = GetWindowWithRect(SaveFoldersPanelTest, Rect(0, 0, 200, 50)); window.Show(); }
function OnGUI() { if(GUI.Button(Rect(10,10, 180, 30), "Save Selected Textures")) { var textures : Object[] = Selection.GetFiltered(typeof(Texture2D), SelectionMode.Unfiltered); if (textures.Length == 0) { EditorUtility.DisplayDialog("Select Textures", "You must select at least one texture first!", "OK"); return; }
var path : String = EditorUtility.SaveFolderPanel("Save textures to folder", "", ""); if (path.Length != 0) { var texture : Texture2D;
for (texture in textures as Texture2D[]) { var processedTex : Texture2D = texture;
var pngData = processedTex.EncodeToPNG();
if (pngData != null) System.IO.File.WriteAllBytes(path + "/" + texture.name + ".png", pngData); else Debug.Log("Could not convert " + texture.name + " to png. Skipping saving texture."); }
// Just in case we are saving to the asset folder, tell Unity to scan for modified or new assets AssetDatabase.Refresh();
} } }
}
using UnityEngine; using UnityEditor; using System.IO;
public class SaveFolderPanelExample : EditorWindow { [MenuItem("Example/Save Textures To Folder")] static void Apply() { Object[] textures = Selection.GetFiltered(typeof(Texture2D), SelectionMode.Unfiltered); if (textures.Length == 0) { EditorUtility.DisplayDialog("Select Textures", "You must select at least one texture first!", "OK"); return; }
string path = EditorUtility.SaveFolderPanel("Save textures to folder", "", ""); if (path.Length != 0) { foreach (Texture2D texture in textures) { Texture2D processedTex = texture;
byte[] pngData = processedTex.EncodeToPNG(); if (pngData != null) File.WriteAllBytes(path + "/" + texture.name + ".png", pngData); else Debug.Log("Could not convert " + texture.name + " to png. Skipping saving texture."); }
// Just in case we are saving to the asset folder, tell Unity to scan for modified or new assets AssetDatabase.Refresh(); } } }