开关菜单使用


#if UNITY_EDITOR

using UnityEditor;

public class MyToggleMenu 
{
    const string Menu_Item_Is_Auto_Reload_Xxx = "Window/MyTools/IsAutoReloadXxx";

    static int _isAutoReloadXxx = -1;
    static bool IsAutoReloadXxx
    {
        get
        {
            if (-1 == _isAutoReloadXxx)
                _isAutoReloadXxx = EditorPrefs.GetInt(Menu_Item_Is_Auto_Reload_Xxx, 0);
            return 1 == _isAutoReloadXxx;
        }
        set
        {
            var newValue = value ? 1 : 0;
            if (_isAutoReloadXxx != newValue)
            {
                _isAutoReloadXxx = newValue;
                EditorPrefs.SetInt(Menu_Item_Is_Auto_Reload_Xxx, newValue);
            }
        }
    }

    [MenuItem(Menu_Item_Is_Auto_Reload_Xxx, true)]
    static bool MenuItemValidator_IsAutoReloadXxx()
    {
        Menu.SetChecked(Menu_Item_Is_Auto_Reload_Xxx, IsAutoReloadXxx);
        var menuItemEnable = !EditorApplication.isCompiling;
        return menuItemEnable;
    }

    [MenuItem(Menu_Item_Is_Auto_Reload_Xxx, false)]
    static void MenuItem_IsAutoReloadXxx()
    {
        IsAutoReloadXxx = !Menu.GetChecked(Menu_Item_Is_Auto_Reload_Xxx);
    }
    
}

#endif

相关