EditorUtility.SaveFilePanelInProject
Declaration
public static string SaveFilePanelInProject(string title, string defaultName, string extension, string message);public static string SaveFilePanelInProject(string title, string defaultName, string extension, string message, string path);Параметры
| Параметр | Описание |
|---|---|
| название | Название окна для отображения. |
| defaultName | Заместитель текста для отображения в текстовом поле "Сохранить как". Это имя файла, который будет сохранен. |
| расширение | Расширение файла, используемое в пути к сохраненному файлу. Например, введите "png", чтобы сохранить изображение в формате PNG. |
| сообщение | Текстовое резюме, которое будет отображаться в диалоге. |
| путь | Рабочий каталог, в котором будет открываться диалог. Значение по умолчанию — "Assets.". |
Возвращаемое значение
строка Строка пути к сохранённому файлу. Если диалог был отменён или сохранение не удалось, возвращается пустая строка.
Описание
Отображает диалог "сохранить файл" в папке Assets проекта и возвращает имя выбранного пути.
Возвращаемая строка всегда содержит путь относительно проекта внутри папки Assets. Она начинается с Assets/, например: Assets/MyFolder/MyFile.asset
Диалоговое окно всегда открывается в корне папки Assets, независимо от того, куда пользователь переходил и где сохранял файлы ранее в этом сеансе.
Значение defaultName используется только для предварительного заполнения поля имени файла. Передача полного пути в defaultName не изменяет начальную папку.
Расширение можно включить в defaultName (например, MyFile.asset); оно не будет продублировано, если также указать его в параметре extension. В общем случае расширение следует указать хотя бы один раз, предпочтительно через extension, то есть с помощью соответствующего параметра.
Указывайте extension без точки, например asset или png. Unity нормализует и принудительно задаёт расширение на основе этого аргумента. Если пользователь введёт другое расширение, Unity может добавить или исправить его в соответствии с указанным расширением.
Строка message отображается в UI диалогового окна как вспомогательный текст или подсказка под полем имени файла, хотя её представление может различаться в зависимости от платформы.
Как правило, Unity не создаёт исключений при обычных недопустимых входных значениях этого диалогового окна, например при неверном defaultName, пустом extension или необычных символах. Вместо этого диалоговое окно всё равно открывается, при этом неверные значения могут быть проигнорированы или очищены.
Если пользователь отменяет операцию или её не удаётся завершить, возвращается пустая строка. Это может произойти, в частности, в следующих случаях:
- Пользователь нажимает кнопку Отменить.
- Выбранный путь будет недействительным или вне
Assets/и Unity отвергнет его. - Конфликт принуждения расширения и Unity не может разрешить его.
Объект структурированной ошибки отсутствует; вы получаете только пустую строку.
Дополнительные ресурсы: SaveFilePanel функция.
Сохранить панель файлов в проекте.
using UnityEngine; using UnityEditor; using System.IO;
public class SaveFilePanelInProjectExample : EditorWindow { [MenuItem("Example/Save Texture In Project")] static void Apply() { Texture2D texture = Selection.activeObject as Texture2D; if (texture == null) { EditorUtility.DisplayDialog("Select Texture", "You must select a texture first!", "OK"); return; }
string path = EditorUtility.SaveFilePanelInProject("Save png", texture.name + "png", "png", "Please enter a file name to save the texture to"); if (path.Length != 0) { byte[] 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(); } } } }