Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public static bool SaveScene(SceneManagement.Scene scene, string dstScenePath = "", bool saveAsCopy = false);

Параметры

scene Сцена для сохранения.
dstScenePath Путь к файлу для сохранения сцены. Если путь пуст, текущая открытая сцена перезаписывается. Если он еще не был сохранен, отображается диалоговое окно сохранения..
saveAsCopy Если установлено значение true, сцена сохраняется без изменения текущей сцены и без очистки маркера несохраненных изменений.

Возвращает

bool true, если сохранение прошло успешно, в противном случае — false.

Описание

Сохранить сцену.

Все пути относятся к папке проекта, например: "Assets/MyScenes/MyScene.unity". Папки, указанные в пути, должны уже существовать до вызова функции. Если путь не указан, используется путь к текущей открытой Сцене, за исключением случаев, когда она никогда ранее не сохранялась, и в этом случае отображается диалоговое окно сохранения.

Функция возвращает false, если сохранение не удалось. Это может произойти, если указанный путь недействителен или если пользователь отменяет в случае диалогового окна сохранения.

Смотрите так же: EditorSceneManager.GetActiveScene

Пример:

Простое окно редактора, которое каждые 300 секунд сохраняет текущую сцену..

Примечание. Сцена сохраняется независимо от того, помечена она как грязная или нет.

using UnityEditor; using UnityEngine; using System.Collections; using UnityEditor.SceneManagement; public class SimpleAutoSave : EditorWindow { public float saveTime = 300; public float nextSave = 0; [MenuItem("Example/Simple autoSave")] static void Init() { SimpleAutoSave window = (SimpleAutoSave)EditorWindow.GetWindowWithRect(typeof(SimpleAutoSave), new Rect(0, 0, 200, 50)); window.Show(); } void OnGUI() { EditorGUILayout.LabelField("Save Each:", saveTime + " Secs"); float timeToSave = nextSave - (float)EditorApplication.timeSinceStartup; EditorGUILayout.LabelField("Next Save:", timeToSave.ToString() + " Sec"); Repaint(); if (EditorApplication.timeSinceStartup > nextSave) { string[] path = EditorSceneManager.GetActiveScene().path.Split(char.Parse("/")); path[path.Length - 1] = "AutoSave_" + path[path.Length - 1]; bool saveOK = EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene(), string.Join("/", path)); Debug.Log("Saved Scene " + (saveOK ? "OK" : "Error!")); nextSave = (float)EditorApplication.timeSinceStartup + saveTime; } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3