创建一个UnityEditor扩展窗体
创建打开窗体开关
因为自定义窗体并不是默认打开的,所以我们需要为自定义窗体定义一个打开开关。
参考代码如下
[MenuItem("WinTest/Open")]
public static void OpenWinTest() {
//获取窗体实例
var w = EditorWindow.GetWindow(typeof(WinTest),false,"WinTest",true);
//打开窗体实例
w.Show();
}
创建窗体类型
- 窗体类型必须继承自 EditorWindow 类型
public class WinTest : EditorWindow
{
}
- 主要的实现方法
Awake():窗体创建时调用一次,可以用来加载一些东西,和做窗口的初始化
OnGUI():窗体内容的绘制方法,用于绘制窗体内容
private void Awake()
{
t = Resources.Load("Pngs/ChildPlayWater") as Texture;
Debug.Log("awake WinTest");
}
private void OnGUI()
{
GUILayout.Label("Hello Unity Editor,I extend you now",EditorStyles.boldLabel);
if (GUILayout.Button("ButtonOne")) {
Debug.Log($"Echo..iData:{iData}");
}
iData = EditorGUILayout.IntField("iData",iData);
iRange = EditorGUILayout.IntSlider("iRange",iRange,1,1000);
t = EditorGUILayout.ObjectField("选择贴图",t,typeof(Texture),true) as Texture;
EditorGUI.DrawRect(new Rect(50, 350, 70, 70), Color.green);
EditorGUI.DrawPreviewTexture(new Rect(150, 350, 300, 300),t);
}