1.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
//窗口类需要继承自EditorWindow
public class MyWindow : EditorWindow
{
//窗口需要一个打开的方式
//MenuItem属性会在编辑器菜单上创建对应的选项
//点击选项即可创建窗口
[MenuItem("Window/My Window")]
public static void ShowWindow()
{
//调用EditorWindow的静态函数GetWindow
//创建对应的窗口
//ps:该函数有多个重载
EditorWindow.GetWindow(typeof(MyWindow));
}
private void OnGUI()
{
//窗口绘制的实际代码在这里
}
}
因为OnGUI中没有写代码,所以是一个空的窗口
2.
在OnGUI()中可以使用UnityGUI中GUI和GUILayout类,还可以使用编辑器组件EditorGUI 和 EditorGUILayout 类。
现在添加如下内容:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
//窗口类需要继承自EditorWindow
public class MyWindow : EditorWindow
{
string myString = "Hello World";
bool groupEnabled;
bool myBool = true;
float myFloat = 1.23f;
//窗口需要一个打开的方式
//MenuItem属性会在编辑器菜单上创建对应的选项
//点击选项即可创建窗口
[MenuItem("Window/My Window")]
public static void ShowWindow()
{
//调用EditorWindow的静态函数GetWindow
//创建对应的窗口
//ps:该函数有多个重载
EditorWindow.GetWindow(typeof(MyWindow));
}
private void OnGUI()
{
//窗口绘制的实际代码在这里
GUILayout.Label("Base Settings", EditorStyles.boldLabel);
myString = EditorGUILayout.TextField("TextField", myString);
groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Settings", groupEnabled);
myBool = EditorGUILayout.Toggle("Toggle", myBool);
myFloat = EditorGUILayout.Slider("Slider", myFloat, -3, 3);
EditorGUILayout.EndToggleGroup();
}
}
会创建如下的窗口
涉及到EditorWindow,EditorStyle,EditorGUILayout,GUILayout等类、Ge