下のようなかんじでインスペクタにボタンを表示させ、
押したときに MonoBehaviour の任意の関数を実行させる。
MonoBehaviour のスクリプトを作成
下スクリプトの OnButtonClickInInspector を実行させたいとする。
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ButtonExample : MonoBehaviour { public void OnButtonClickInInspector() { Debug.Log("インスペクタでボタン押された"); } }
Editor を継承したスクリプトを作成
まずプロジェクトウインドウで Editor フォルダがあるか確認、なかったら作る。
この中に作成したスクリプトは Unity エディタのプラグインとして実行されるようになる。
そしたら Editor クラスを継承させたスクリプトを作成。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; [CustomEditor(typeof(ButtonExample), true)] public class ButtonCustomEditor : Editor { public override void OnInspectorGUI() { base.OnInspectorGUI(); ButtonExample script = target as ButtonExample; if (GUILayout.Button("Action")) { script.OnButtonClickInInspector(); } } }
using UnityEditor; は忘れず入れること。
CustomEditor の第二引数をtrueにしないと、ButtonExample を継承したクラスでボタンが表示されなくなってしまうのでとりあえず入れとく。