本日は Unity の小ネタ枠です。
Unityでスクリプトからプロジェクトウィンドウにメニュー項目を実行する方法です。
MenuItem
Unityで自作のメニュー項目を追加するにはMenuItemを属性として指定します。
MenuItemは静的関数(static)のみが利用可能です。
docs.unity3d.com
プロジェクトウィンドウにメニューを追加する
以下の2種類のパスはプロジェクトウィンドウの特別なパスとして利用されます。
・Assets/
・Assets/Create/
Assets/
プロジェクトウィンドウ上で右クリックした場合に表示されるメニュー項目を追加できます。
[MenuItem("Assets/AssetsShowLogTest")]
Assets/Create/
プロジェクトウィンドウ右上の[+]ボタンをクリックした場合に表示されるメニュー項目を追加できます。
[MenuItem("Assets/Create/AssetsCreateShowLogTest")]
サンプルスクリプト
追加のメニューを実行するとログ出力を行うサンプルスクリプトを作成しました。
・SpecialMenuItemTest.cs
using UnityEditor; using UnityEngine; public class SpecialMenuItemTest : MonoBehaviour { /// <summary> /// プロジェクトビューで右クリックしたときのメニューに表示されるアイテムを追加する /// </summary> [MenuItem("Assets/AssetsShowLogTest")] private static void AssetsShowLogTest() { Debug.Log("プロジェクトビューで右クリックしたときのメニューに表示されるアイテムを追加する"); } /// <summary> /// プロジェクトビューの[+]ボタンで開くメニューに表示されるアイテムを追加する /// </summary> [MenuItem("Assets/Create/AssetsCreateShowLogTest")] private static void AssetsCreateShowLogTest() { Debug.Log("プロジェクトビューの[+]ボタンで開くメニューに表示されるアイテムを追加する"); } }
以下のようにメニュー項目をクリックして実行するとログが表示されました。