有时候在运行时需要调试更改一些东西或调用某些方法,而这在Inspector面板中无法操作,所以需要自己写个编辑器扩展按钮等来方便调试。
首先,写测试脚本,脚本中有需要的字段
using UnityEngine;
public class Test : MonoBehaviour
{
public Vector3 pos;//位置
public Transform go;//需要设置位置的物体
public MyScript script;//需要执行的方法所在的脚本
public void SetPosition(Vector3 pos)
{
go.position = pos;
script.Method();
}
}
public class MyScript:MonoBehaviour
{
public void Method()
{
Debug.Log("执行某个脚本中的方法");
}
}
其次,继承Editor完成编辑器扩展脚本,并将这个脚本放在名为Editor的文件夹下面
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(Test))]
public class TestEditor : Editor
{
private Test debug;
private void OnEnable()
{
debug = target as Test;
}
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
if (GUILayout.Button("设置Anchor"))
{
debug.SetPosition(debug.pos);
}
}
}
最后,在运行的时候将Test脚本挂上,并拖进来相应的物体,结果如下