扩展自定义类在Inspector面板的显示/在Inspector面板显示自定义类方法
发表于2018-12-04
一、
简单一点的方法,给类方法添加 [ContextMenu("")] 标记,添加完成后,在Inspector面板的该脚本组件下,右键弹出菜单,可在编辑器环境调用该方法
public class InspectorEditorTest : MonoBehaviour { [SerializeField] string outPutStr; //在Inspector面板的该脚本组件, 添加该方法到右键菜单, 在编辑器环境调用该方法 [ContextMenu("My Func", false)] public void TestFunc() { Debug.Log("test string : " + outPutStr); } }
二、
通过Editor扩展Inspector面板,在面板值直接显示调用按钮,点击按钮执行方法
using UnityEngine; using UnityEditor; //扩展InspectorEditorTest类在Inspector面板的显示内容 [CustomEditor(typeof(InspectorEditorTest))] public class InspectorEditor : Editor { //重写OnInspectorGUI类(刷新Inspector面板) public override void OnInspectorGUI() { //继承基类方法 base.OnInspectorGUI(); //获取要执行方法的类 InspectorEditorTest targetScript = (InspectorEditorTest)target; //绘制Button if (GUILayout.Button("My Func")) { //执行方法 targetScript.TestFunc(); } } } public class InspectorEditorTest : MonoBehaviour { [SerializeField] string outPutStr; ////在Inspector面板的该脚本组件, 添加该方法到右键菜单, 在编辑器环境调用该方法 //[ContextMenu("My Func", false)] public void TestFunc() { Debug.Log("test string : " + outPutStr); } }