(:3[kanのメモ帳]スマートフォン用の表示で見る(:3[kanのメモ帳]個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。2018.2.14f1はじめにUnityのエディタ拡張にはMenuItemというメニューを追加したい時に使える属性があります。このMenuItemは簡単かつ便利なので、知っていおいた方が良いですし、エディタ拡張の入門としてもオススメです。意外と多機能なのでMenuItem自体は使っていても、知らない使い方があるかもしれません。}という事で今回はこのMenuItemについてまとめてみました!なお、他にもこんなことが出来るみたいなのがあれば、ご一報頂けると幸いです。基本的な使い方MenuItemは最初にも述べた通り、Unityエディタにメニューを追加するためのものです。使い方は簡単、staticなメソッド(privateでもOK)にMenuItemという属性を付けるだけ。この時、引数にメニューを表示する場所を指定します。"ShowLog"のように直で指定する事は出来ず、必ず"Tools/ShowLog"のように階層を付けます。[MenuItem("Window/ShowLog")]メニュー名を日本語にしたり、階層を増やすことも可能です。以前、記事にもしましたが、MenuItemはショートカットキー(ホットキー)を設定する事も可能です。引数のメニューを表示する場所の後にスペースを空けてキーを追加するだけです。Debug.Log("ログ");}また、アルファベット以外に設定可能なキーは以下の通りです。PageDownただし、一つのキー単独で指定する場合はアンダーバー(_)をキーの前に置く必要があります。Debug.Log("ログ");}なお、デフォルトのショートカットキーと同じものを設定してしまうと、デフォルトの方が優先されてしまいます。Managerからショートカットの設定や、デフォルトの変更をする事も出来ます。特殊なパスを使えば別の所に追加する事も可能です。その特殊なパスというのが以下の3つになります。ProjectビューのCreateパスの最初を"Assets/Create/"にするとProjectビューのCreateにメニューを追加出来ます。Debug.Log("ログ");}こちらも、上部に通常通り表示されます。Projectビュー上で右クリックした所パスの最初を"Assets/"にするとProjectビュー上で右クリックした所にメニューを追加出来ます。Debug.Log("ログ");}なお、上部にも通常通り表示されます。コンポーネントの歯車パスの最初を"CONTEXT/コンポーネント名"にするとコンポーネントの歯車にメニューを追加出来ます。RigidBodyの場合だと以下のような感じ。Debug.Log("ログ");}なお、引数にMenuCommandを付けると、実行したコンポーネントを取得する事が可能です。Debug.Log(rigidbody.gameObject.name);}もちろん自作のコンポーネントに追加する事も出来ます。}なお、ContextMenuでも同様の事が可能です。こちらはRigidbodyなどのデフォルトで用意されているものには使えません。}}余談ですがContextMenuItemを使えば、変数を右クリックした所にメニューを追加する事も出来ます。この場合、第一引数に表示名、第二引数に実行するメソッド名を指定します。}}無効にして使えないようにするMenuItemは同じパスでvalidateという引数をtrueにし、返り値をboolにすればそのメニューが使えるかどうかの判定用のメソッドに出来ます。具体的には以下のような感じです。!Application.isPlaying;//実行中は使えない}チェックマークを付けるMenuのSetCheckedを使えば、メニューにチェックを付けたり外したりも出来ます。同様にMenuのGetCheckedを使えばチェックが付いてるかが分かります。具体的には以下のような感じです。!isChecked);}なお、MenuItemを設定したメソッドと違う場所で使う事も可能です。Unityエディタを再起動するとチェックは外れます。並びの優先度を指定、区切り線を追加MenuItemのpriorityという引数を使えば、並びの優先度を指定する事も可能です。priorityは低いほどメニューは上に表示され、同じ値を設定しても問題ありません。priorityが付いていないか、priorityに11以上差をつければ区切り線が表示されます。具体的には以下のような感じです。後から間の値を設定し、幅が10以下になったら区切りが消えるので注意が必要です。はてなブログPro個人ゲーム開発者。ω、)_新作は札束風呂VRや神巫女。Policy広告はてなブログをはじめよう!kan_kikuchiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。