【Unity】【エディタ拡張】MenuItemにショートカットキー(ホットキー)を設定する

MenuItemをショートカットキーにより実行する方法です。

実装

実装は簡単で、下記のようにメニュー名の後にキーを指定するだけです。

// メニュー名の後に半角スペースを空けてからキーを指定する
// #はShiftキーを表すので、このメソッドはShift+Aで実行される
[MenuItem("Tools/Sample #a")]
private static void SampleMenu()
{
    Debug.Log("Execute Sample Menu");
}

キーは次のものから選択できます。

ちなみに単体で文字キーを使う場合、つまりAキーをショートカットキーとしたい場合は、
_aのようにアンダースコアをつける必要があります。

重複した場合

ショートカットキー重複した場合、エラーにはならず、どちらかのメソッドが実行されます。
重複管理は何かしらの方法でする必要がありそうです。

定数でキーを定義しておいて管理するとかでしょうか。

private const string KEY_SHIFT_A = "#a";

[MenuItem("Tools/Sample " + KEY_SHIFT_A)]
private static void SampleMenu()
{
    Debug.Log("Execute Sample Menu");
}

参考

unity3d.com