Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.
Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.
ЗакрытьПо определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.
ЗакрытьDisplays the "save folder" dialog and returns the selected path name.
See Also: SaveFilePanel, OpenFilePanel functions.
Save Folder Panel.
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;
// Convert the texture to a format compatible with EncodeToPNG if( texture.format != TextureFormat.ARGB32 && texture.format != TextureFormat.RGB24 ) { Texture2D newTexture = new Texture2D( texture.width, texture.height ); newTexture.SetPixels( texture.GetPixels( 0 ), 0 ); processedTex = newTexture; }
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( ); } }
}