Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

MenuItem

class in UnityEditor

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える

説明

MenuItem 属性によりメインメニューとインスペクターのコンテキストメニューにメニューアイテムを追加できます。

MenuItem 属性によりメインメニューとインスペクターのコンテキストメニューにメニューアイテムを追加できます。

ホットキーを作成するには次の特殊記号が使用できます: % (Windows 上で Ctrl キー、OS X 上で Cmd キー)、# (Shift キー)、& (Alt キー)。例えば Shift + Alt + G のメニューを作成するには "MyMenu/Do Something #&g" を使用します。G キーのみ(キー修飾子なし)でホットキーを作成するには "MyMenu/Do Something _g" を使用します。

いくつかの特殊記号はホットキーとしてサポートされていて、例えば "#LEFT" は Shift + 左矢印キーにマッピングされます。このようにサポートされているキーは上下左右の矢印キー、F1 ~ F12 キー、Home キー、End キー、Page Up キー、Page Down キーです。( LEFT, RIGHT, UP, DOWN, F1 .. F12, HOME, END, PGUP, PGDN )

ホットキーの文字列の前にスペース文字を含める必要があります( "MyMenu/Do _g" はホットキーとして認識されず、一方で "MyMenu/Do _g" は認識されます)

自分でカスタマイズしたゲームオブジェクトを作成するメニュー項目を "GameObject/" メニューに追加する場合、コンテキストメニューからそのメニューがクリックされたときに新規で作成したゲームオブジェクトが正しく親子関係を保てるように、GameObjectUtility.SetParentAndAlign を使用するようにしてください。また Undo が実行できるように Undo.RegisterCreatedObjectUndo で作成したゲームオブジェクトを登録し、最後に 作成直後に選択状態になるように Selection.activeObject にゲームオブジェクトを代入します。また、"GameObject/" のメニュー項目は ヒエラルキーウィンドウの Create ボタンや コンテキストメニューからも表示されます。なので見やすくするためにメニュー項目を追加する場合はグループ化しておくのがよいかもしれません。さらに、メニュー表示の優先順位を 10 に設定しておくのが Unity での理想的な設定となります(下記にサンプルがあります)。以前のバージョンにあった "GameObject/Create Other" の影響で、"GameObject/Create Other" のメニュー項目(カテゴリ)を作成すると、優先順位(priority 引数)を明示的に設定していなくてもデフォルトの 1000 の代わりに 10 が設定されます。この仕様を利用してもいいのですが、できれば "Create Other" よりも分かりやすいカテゴリ名にして、明示的に優先順位の 10 を設定することをおすすめします。

// Add a menu item named "Do Something" to MyMenu in the menu bar.
@MenuItem ("MyMenu/Do Something")
static function DoSomething () {
	Debug.Log ("Doing Something...");
}

// Validated menu item. // Add a menu item named "Log Selected Transform Name" to MyMenu in the menu bar. // We use a second function to validate the menu item // so it will only be enabled if we have a transform selected. @MenuItem ("MyMenu/Log Selected Transform Name") static function LogSelectedTransformName () { Debug.Log ("Selected Transform is on " + Selection.activeTransform.gameObject.name + "."); }

// Validate the menu item defined by the function above. // The menu item will be disabled if this function returns false. @MenuItem ("MyMenu/Log Selected Transform Name", true) static function ValidateLogSelectedTransformName () { // Return false if no transform is selected. return Selection.activeTransform != null; }

// Add a menu item named "Do Something with a Shortcut Key" to MyMenu in the menu bar // and give it a shortcut (ctrl-g on Windows, cmd-g on OS X). @MenuItem ("MyMenu/Do Something with a Shortcut Key %g") static function DoSomethingWithAShortcutKey () { Debug.Log ("Doing something with a Shortcut Key..."); }

// Add a menu item called "Double Mass" to a Rigidbody's context menu. @MenuItem ("CONTEXT/Rigidbody/Double Mass") static function DoubleMassFromContext (command : MenuCommand) { var body : Rigidbody = command.context; body.mass = body.mass * 2; Debug.Log ("Doubled Rigidbody's Mass to " + body.mass + " from Context Menu."); }

// Add a menu item to create custom GameObjects. // Priority 1 ensures it is grouped with the other menu items of the same kind // and propagated to the hierarchy dropdown and hierarch context menus. @MenuItem ("GameObject/MyCategory/Custom Game Object", false, 10) static function CreateCustomGameObject(menuCommand : MenuCommand) { var go : GameObject = new GameObject("Custom Game Object"); // Ensure it gets reparented if this was a context click (otherwise does nothing) GameObjectUtility.SetParentAndAlign(go, menuCommand.context as GameObject); // Register the creation in the undo system Undo.RegisterCreatedObjectUndo(go, "Create " + go.name); Selection.activeObject = go; }
using UnityEditor;
using UnityEngine;
public class MenuTest : MonoBehaviour {

// Add a menu item named "Do Something" to MyMenu in the menu bar. [MenuItem ("MyMenu/Do Something")] static void DoSomething () { Debug.Log ("Doing Something..."); }

// Validated menu item. // Add a menu item named "Log Selected Transform Name" to MyMenu in the menu bar. // We use a second function to validate the menu item // so it will only be enabled if we have a transform selected. [MenuItem ("MyMenu/Log Selected Transform Name")] static void LogSelectedTransformName () { Debug.Log ("Selected Transform is on " + Selection.activeTransform.gameObject.name + "."); }

// Validate the menu item defined by the function above. // The menu item will be disabled if this function returns false. [MenuItem ("MyMenu/Log Selected Transform Name", true)] static bool ValidateLogSelectedTransformName () { // Return false if no transform is selected. return Selection.activeTransform != null; }

// Add a menu item named "Do Something with a Shortcut Key" to MyMenu in the menu bar // and give it a shortcut (ctrl-g on Windows, cmd-g on OS X). [MenuItem ("MyMenu/Do Something with a Shortcut Key %g")] static void DoSomethingWithAShortcutKey () { Debug.Log ("Doing something with a Shortcut Key..."); }

// Add a menu item called "Double Mass" to a Rigidbody's context menu. [MenuItem ("CONTEXT/Rigidbody/Double Mass")] static void DoubleMass (MenuCommand command) { Rigidbody body = (Rigidbody)command.context; body.mass = body.mass * 2; Debug.Log ("Doubled Rigidbody's Mass to " + body.mass + " from Context Menu."); }

// Add a menu item to create custom GameObjects. // Priority 1 ensures it is grouped with the other menu items of the same kind // and propagated to the hierarchy dropdown and hierarch context menus. [MenuItem("GameObject/MyCategory/Custom Game Object", false, 10)] static void CreateCustomGameObject(MenuCommand menuCommand) { // Create a custom game object GameObject go = new GameObject("Custom Game Object"); // Ensure it gets reparented if this was a context click (otherwise does nothing) GameObjectUtility.SetParentAndAlign(go, menuCommand.context as GameObject); // Register the creation in the undo system Undo.RegisterCreatedObjectUndo(go, "Create " + go.name); Selection.activeObject = go; } }

コンストラクタ

MenuItemメニューアイテムを作成し、メニューアイテムが選択されたときに指定された static 関数を実行します