MenuItemをショートカットキーにより実行する方法です。
実装
実装は簡単で、下記のようにメニュー名の後にキーを指定するだけです。
// メニュー名の後に半角スペースを空けてからキーを指定する // #はShiftキーを表すので、このメソッドはShift+Aで実行される [MenuItem("Tools/Sample #a")] private static void SampleMenu() { Debug.Log("Execute Sample Menu"); }
キーは次のものから選択できます。
- % - CTRL (Windows) または command (OSX)
- # - Shift
- & - Alt キー
- LEFT/RIGHT/UP/DOWN - 方向キー
- F1…F2 - F キー
- HOME, END, PGUP, PGDN - HOME、END, PageUp, PageDown
Unityエディター拡張 - Menu Item - Unity より
ちなみに単体で文字キーを使う場合、つまりAキーをショートカットキーとしたい場合は、
_aのようにアンダースコアをつける必要があります。
重複した場合
ショートカットキー重複した場合、エラーにはならず、どちらかのメソッドが実行されます。
重複管理は何かしらの方法でする必要がありそうです。
定数でキーを定義しておいて管理するとかでしょうか。
private const string KEY_SHIFT_A = "#a"; [MenuItem("Tools/Sample " + KEY_SHIFT_A)] private static void SampleMenu() { Debug.Log("Execute Sample Menu"); }