Displays the "save file" dialog in the Assets folder of the project and returns the selected path name.
See Also: SaveFilePanel function.
Save File panel in project.
// Opens a file selection dialog for a PNG file and saves a selected texture to the file.
import System.IO;
@MenuItem("Examples/Save Texture to file")
static function Apply () {
var texture : Texture2D = Selection.activeObject as Texture2D;
if(!texture) {
EditorUtility.DisplayDialog("Select Texture",
"You Must Select a Texture first!",
"Ok");
return;
}
var path = EditorUtility.SaveFilePanelInProject("Save texture as PNG",
texture.name + ".png",
"png",
"Please enter a file name to save the texture to");
if(path.Length != 0) {
// Convert the texture to a format compatible with EncodeToPNG
if(texture.format != TextureFormat.ARGB32 && texture.format != TextureFormat.RGB24) {
var newTexture = Texture2D(texture.width, texture.height);
newTexture.SetPixels(texture.GetPixels(0),0);
texture = newTexture;
}
var pngData = texture.EncodeToPNG();
if(pngData != null) {
File.WriteAllBytes(path, pngData);
// As we are saving to the asset folder, tell Unity to scan for modified or new assets
AssetDatabase.Refresh();
}
}
}