Version: 2023.1
言語: 日本語
public string saveChangesMessage ;

説明

The message that displays to the user if they are prompted to save.

Set saveChangesMessage in a derived class to prevent users from accidentally losing unsaved work. For saveChangesMessage to work, you must use it with Editor.hasUnsavedChanges and override the Editor.SaveChanges method. This message shows exactly as you have written it. This message presents to users who have unsaved changes, if they attempt to close the Inspector, change Selection or enter Playmode. The save changes message might combine with other messages from other editors. This occurs if there are multiple editors that have unsaved changes.

using UnityEngine;
using UnityEditor;

[CreateAssetMenu] public class UnsavedChangesExampleSO : ScriptableObject {}

[CustomEditor(typeof(UnsavedChangesExampleSO))] public class UnsavedChangesExampleEditor : UnityEditor.Editor { void OnEnable() { saveChangesMessage = "This editor has unsaved changes. Would you like to save?"; }

void OnInspectorGUI() { saveChangesMessage = EditorGUILayout.TextField(saveChangesMessage);

EditorGUILayout.LabelField(hasUnsavedChanges ? "I have changes!" : "No changes.", EditorStyles.wordWrappedLabel); EditorGUILayout.LabelField("Try to change selection.");

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(); } }
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961