青空の月

Unity, C#, アプリ開発関連について。

エディタ拡張でメニュー追加する時のコツ

エディタ拡張でメニューに追加する時、同じ機能を別の場所に追加したい際に有効そうな技。

例えば、空のゲームオブジェクトを作る機能を追加したい時に、「Assets>Create」、「GameObject>Create Other」にメニュー追加する場合は以下の様に書ける。

    //Assets>Create
	[MenuItem("Assets/Create/EmptyGameObject")]
	private static void CreateEmptyGameObjectMenueAssets()
	{
		//GameObject作成処理
	}

	//GameObject>Create Other
	[MenuItem("GameObject/Create Other/EmptyGameObject")]
	private static void CreateEmptyGameObjectMenueGameObject()
	{
		//GameObject作成処理
	}

 

 コレをもっと簡略化するとこうなる。

    [MenuItem("Assets/Create/EmptyGameObject")]
	[MenuItem("GameObject/Create Other/EmptyGameObject")]
	private static void _CreateEmptyGameObject()
	{
		//GameObject作成処理
	}

「MenuItem」を連続して書くと、関数1つで済む。

技でも何でもないんだけど、MenuItemと関数のセットを複数作るのメンドイと思ってたらこうやると楽です。