Inspector上でコンポーネントを右クリックしたり、
歯車ボタンをクリックしたときに出てくるメニューを追加する方法です。
実装
MenuItemを使って実装します。
// CONTEXT/[コンポーネント名]/[メニュー名]とすることで追加できる [MenuItem("CONTEXT/Transform/Sample")] private static void SampleMenu(MenuCommand menuCommand) { // MenuCommand.contextにコンポーネントのインスタンスが入ってくる var transform = menuCommand.context as Transform; transform.position = Vector3.one; }
また、対象コンポーネントのMonoBehaviourに直接メソッドを書くこともできます。
using UnityEngine; public class SampleBehaviour : MonoBehaviour { [ContextMenu("Sample")] private void Sample() { Debug.Log("Execute Sample"); } }
結果は次のようになります。
フィールドを右クリックしたときのメニューを作る
ちなみに、フィールドを右クリックしたときのメニューも追加できます。
using UnityEngine; public class SampleBehaviour : MonoBehaviour { // 引数は表示名, メソッド名 [SerializeField, ContextMenuItem("Show Log", "Sample")] private int _sample; private void Sample() { Debug.Log(_sample); } }
結果は次のようになります。