はじめに
UnityにはMenuItemというメインメニューとインスペクターのコンテキストメニューにメニューアイテムを追加することができるAttributeがあります。
MenuItemの公式のドキュメントはこちら
UnityEditor.MenuItem - Unity スクリプトリファレンス
MenuItemの基本的な使い方
以下のようにMenuItemというAttributeを特定のメソッドに追加することにより、メインメニューやコンテキストメニューにメニューアイテムを追加できます。
[MenuItem("CustomMenu/Do Something")] static void DoSomething() { Debug.Log("Do Something."); }
こんな感じでメニューに追加されます。
これを実行すると、意図した通りにコンソールにログが出力されます。
ホットキーを定義する
MenuItem
は、ホットキー(ショートカットキー)を作成することもできます。
以下のような特殊文字を使用するかどうかで表記方法が異なります。
コマンド | 特殊文字 |
---|---|
cmd | % |
shift | # |
alt(option) | & |
特殊文字を使用する場合
上記の特殊文字を使用する場合は、以下のようにコマンド名の最後にスペースを入れ、その後にショートカットキーを指定します。
(Do SomethingなのでCommand + dにしてみました)
[MenuItem("CustomMenu/Do Something %d")] static void DoSomething() { Debug.Log("Do Something."); }
メニューにもショートカットーキーが表示されます。
Command + shift + option + dの場合はこんな感じ
これらのコマンドを打つことで、特定の処理を実行することができます!
特殊文字を使用しない場合
特殊文字を使用しない場合は、コマンド名の最後にスペースを入れ、その後に_
+ ショートカットキーを指定します。
[MenuItem("CustomMenu/Do Something _d")] static void DoSomething() { Debug.Log("Do Something."); }
最後に
MenuItemでメニューを拡張できる上にショートカットを指定できるのは便利ですね。
今回、特殊文字を使用しない例として、d
を指定しましたが、
誤って処理を実行してしまう可能性もあるので、cmd + dとかにするのがいいかなと思います。