通过编辑器扩展的脚本,可以给自己写的脚本以及Unity自带的脚本,在界面上添加一些调用组件中方法的按钮,以下为在Button组件上添加一个按钮,触发Button点击事件的脚本
需要注意的是,脚本需要放到一个名为Editor的文件夹中,否则会打包报错
在[CustomEditor(typeof(TaskBase),true)]中添加第二个参数 true,用于在继承自该类的子类上面也去出现按钮
using UnityEditor;
using UnityEditor.UI;
using UnityEngine;
using UnityEngine.UI;
[CustomEditor(typeof(Button))]
public class ButtonEditor : UnityEditor.UI.ButtonEditor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI(); // 绘制默认UI
EditorGUILayout.Space();
EditorGUILayout.LabelField("功能测试", EditorStyles.boldLabel);
// 获取当前选中的Button组件
Button button = (Button)target;
// 添加测试按钮
if (GUILayout.Button("按钮点击"))
{
// 触发OnClick事件
if (Application.isPlaying)
{
button.onClick.Invoke();
}
else
{
Debug.LogWarning("OnClick triggered in Editor mode. " +
"Runtime-only features may not work!");
button.onClick.Invoke();
}
}
}
}