うにてぃブログ

主にUnityとC#に関する記事を書いていきます

【Unity】EditorWindow の MenuItem を追加する

IHasCustomMenu を interface に追加してやることで Menu に要素を追加できます

f:id:hacchi_man:20200227194125p:plain:w400

using UnityEditor;

public class SampleEditorWindow : EditorWindow, IHasCustomMenu
{
    private bool _isOn;

    void IHasCustomMenu.AddItemsToMenu(GenericMenu menu)
    {
        menu.AddItem(new GUIContent("Menu"), false, () =>
        {
            Debug.Log("Menu Click ");
        });
        
        menu.AddSeparator(string.Empty);
        
        menu.AddItem(new GUIContent("Toggle"), _isOn, () =>
        {
            _isOn = !_isOn;
        });

        menu.AddSeparator("Change Enable");
        if (_isOn)
        {
            menu.AddItem(new GUIContent("Disable"), false, () => {});
        }
        else
        {
            menu.AddDisabledItem(new GUIContent("Disable"));
        }
    }
}