Объявление
public void OnDeactivate();Описание
Используйте эту функцию для реализации обработчика, когда пользователь нажимает на другой параметр или когда окно настроек закрывается.
using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
class SimpleIMGUISettingsProvider : SettingsProvider
{
SerializedObject m_Settings;
const string k_MyCustomSettingsPath = "Assets/Editor/MyCustomSettings.asset";
public SimpleIMGUISettingsProvider(string path, SettingsScope scope = SettingsScope.User)
: base(path, scope) {}
public override void OnActivate(string searchContext, VisualElement rootElement)
{
// Called when the user clicks on the MyCustom element in the Settings window.
m_Settings = new SerializedObject(AssetDatabase.LoadAssetAtPath(k_MyCustomSettingsPath));
}
public override void OnDeactivate()
{
// User selected another settings or closed the Settings window.
m_Settings = null;
}
public override void OnGUI(string searchContext)
{
// Use IMGUI to display UI:
EditorGUILayout.PropertyField(m_Settings.FindProperty("m_Number"), new GUIContent("My Number"));
EditorGUILayout.PropertyField(m_Settings.FindProperty("m_SomeString"), new GUIContent("Some string"));
m_Settings.ApplyModifiedPropertiesWithoutUndo();
}
}