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

EditorWindow.saveChangesMessage

public string saveChangesMessage;

Описание

Сообщение, которое отображается пользователю при появлении запроса на сохранение

Установите saveChangesMessage в производном классе, чтобы пользователи не могли случайно потерять несохраненную работу. Чтобы saveChangesMessage работал, вы должны использовать его с EditorWindow.hasUnsavedChanges и переопределить метод EditorWindow.SaveChanges. Это сообщение отображается именно так, как вы его написали. Это сообщение отображается для пользователей, у которых есть несохраненные изменения, если они пытаются закрыть окно или вкладку с этим EditorWindow. Сообщение о сохранении изменений может объединяться с другими сообщениями из других окон. Это происходит, если есть несколько окон с несохраненными изменениями.

// Пример 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