how to make a button on inspector
https://kan-kikuchi.hatenablog.com/entry/CustomEditor_Button
ExampleScript.cs
using UnityEngine; [ExecuteInEditMode] //エディター再生してない時、動くように? 場合によって使う public class ExampleScript : MonoBehaviour { //表示したログ、SerializeFieldを付ける事でInspectorに表示されるように [SerializeField] private string _log = ""; /// <summary> /// _logを"ぷらいべーと!"に変更してConsoleに表示 /// </summary> private void PrivateMethod(){ _log = "ぷらいべーと!"; Debug.Log(_log); } }
ExampleScriptEditor.cs
using UnityEditor; using UnityEngine; [CustomEditor(typeof(ExampleScript))]//拡張するクラスを指定 public class ExampleScriptEditor : Editor { /// <summary> /// InspectorのGUIを更新 /// </summary> public override void OnInspectorGUI(){ //元のInspector部分を表示 base.OnInspectorGUI (); //targetを変換して対象を取得 ExampleScript exampleScript = target as ExampleScript; //PrivateMethodを実行する用のボタン if (GUILayout.Button("PrivateMethod")){ //SendMessageを使って実行 exampleScript.SendMessage ("PrivateMethod", null, SendMessageOptions.DontRequireReceiver); } } }