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

EditorWindow.hasUnsavedChanges

public bool hasUnsavedChanges;

Описание

Это свойство указывает, будет ли редактор предлагать пользователю сохранить или отменить несохраненные изменения перед закрытием окна.

Установите для параметра hasUnsavedChanges значение true, чтобы пользователю было предложено сохранить или отменить несохраненные изменения. Это помогает предотвратить случайную потерю несохраненной работы. При использовании hasUnsavedChanges необходимо также использовать EditorWindow.saveChangesMessage и переопределить EditorWindow.SaveChanges и/или EditorWindow.DiscardChanges. Когда параметр hasUnsavedChanges включен, строка заголовка и закрепленные вкладки обновляются, указывая, что пользователю необходимо сохранить свою работу. Если пользователь закрывает окно без сохранения, появляется окно сообщения с предложением сохранить, отменить изменения или отменить их.

// Пример C# // Скрипт, демонстрирующий API несохраненных изменений using UnityEngine; using UnityEditor; public class UnsavedChangesExampleWindow : EditorWindow { [MenuItem("Example/Editor Window With Unsaved Changes")] static void Init() { UnsavedChangesExampleWindow window = (UnsavedChangesExampleWindow)EditorWindow.GetWindowWithRect(typeof(UnsavedChangesExampleWindow), new Rect(100, 100, 400, 400)); window.saveChangesMessage = "This window has unsaved changes. Would you like to save?"; window.Show(); } void OnGUI() { saveChangesMessage = EditorGUILayout.TextField(saveChangesMessage); EditorGUILayout.LabelField(hasUnsavedChanges ? "I have changes!" : "No changes.", EditorStyles.wordWrappedLabel); EditorGUILayout.LabelField("Try to close the window."); using (new EditorGUI.DisabledScope(hasUnsavedChanges)) { if (GUILayout.Button("Create unsaved changes")) hasUnsavedChanges = true; } using (new EditorGUI.DisabledScope(!hasUnsavedChanges)) { if (GUILayout.Button("Save")) SaveChanges(); if (GUILayout.Button("Discard")) DiscardChanges(); } } public override void SaveChanges() { // Your custom save procedures here Debug.Log($"{this} saved successfully!!!"); base.SaveChanges(); } public override void DiscardChanges() { // Your custom procedures to discard changes Debug.Log($"{this} discarded changes!!!"); base.DiscardChanges(); } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3