从此类派生以创建编辑器窗口。
创建自己的自定义编辑器窗口,这些窗口可以自由浮动,也可以作为选项卡停靠,就像 Unity 界面中的原生窗口一样。
通常使用菜单项打开编辑器窗口。
using UnityEngine; using UnityEditor;
public class MyWindow : EditorWindow { string myString = "Hello World"; bool groupEnabled; bool myBool = true; float myFloat = 1.23f;
// Add menu named "My Window" to the Window menu [MenuItem("Window/My Window")] static void Init() { // Get existing open window or if none, make a new one: MyWindow window = (MyWindow)EditorWindow.GetWindow(typeof(MyWindow)); window.Show(); }
void OnGUI() { GUILayout.Label("Base Settings", EditorStyles.boldLabel); myString = EditorGUILayout.TextField("Text Field", myString);
groupEnabled = EditorGUILayout.BeginToggleGroup("Optional Settings", groupEnabled); myBool = EditorGUILayout.Toggle("Toggle", myBool); myFloat = EditorGUILayout.Slider("Slider", myFloat, -3, 3); EditorGUILayout.EndToggleGroup(); } }
| focusedWindow | 当前已获得键盘焦点的 EditorWindow。(只读) |
| mouseOverWindow | 当前在鼠标光标下的 EditorWindow。(只读) |
| autoRepaintOnSceneChange | 窗口是否会在场景每次发生变化时自动重绘? |
| maximized | 此窗口是否已最大化? |
| maxSize | 此窗口的最大大小。 |
| minSize | 此窗口的最小大小。 |
| position | 窗口在屏幕空间中的理想位置。 |
| titleContent | 用于绘制 EditorWindow 标题的 GUIContent。 |
| wantsMouseEnterLeaveWindow | 检查是否已在此编辑器窗口的 GUI 中收到 MouseEnterWindow 和 MouseLeaveWindow 事件。 |
| wantsMouseMove | 检查是否已在此编辑器窗口的 GUI 中收到 MouseMove 事件。 |
| BeginWindows | 标记所有弹出窗口的开始区域。 |
| Close | 关闭编辑器窗口。 |
| EndWindows | 关闭由 EditorWindow.BeginWindows 开始的窗口组。 |
| Focus | 将键盘焦点移动到另一个 EditorWindow。 |
| RemoveNotification | 停止显示通知消息。 |
| Repaint | 重绘窗口。 |
| SendEvent | 将事件发送到窗口。 |
| Show | 显示 EditorWindow 窗口。 |
| ShowAsDropDown | 显示包含下拉菜单和样式的窗口。 |
| ShowAuxWindow | 在辅助窗口中显示编辑器窗口。 |
| ShowNotification | 显示通知消息。 |
| ShowPopup | 使用弹出式框架显示编辑器窗口。 |
| ShowUtility | 将 EditorWindow 显示为浮动实用程序窗口。 |
| FocusWindowIfItsOpen | 聚焦发现的第一个指定类型的 EditorWindow(如果已打开)。 |
| GetWindow | 返回当前屏幕上第一个 t 类型的 EditorWindow。 |
| GetWindowWithRect | 返回当前屏幕上第一个 t 类型的 EditorWindow。 |
| Awake | 在新窗口打开时调用。 |
| OnDestroy | 调用 OnDestroy 以关闭 EditorWindow 窗口。 |
| OnFocus | 在窗口获得键盘焦点时调用。 |
| OnGUI | 在此处实现您自己的 Editor GUI。 |
| OnHierarchyChange | 处理程序,用于在层级视图中的对象或对象组发生更改时发送的消息。 |
| OnInspectorUpdate | OnInspectorUpdate 以每秒 10 帧的速度调用,以便检视面板有机会进行更新。 |
| OnLostFocus | 在窗口失去键盘焦点时调用。 |
| OnProjectChange | 处理程序,用于在项目状态发生更改时发送的消息。 |
| OnSelectionChange | 每当选择发生更改时调用。 |
| Update | 在所有可见窗口上每秒调用多次。 |
| GetInstanceID | 返回对象的实例 ID。 |
| ToString | 返回 GameObject 的名称。 |
| Destroy | 删除 GameObject、组件或资源。 |
| DestroyImmediate | 立即销毁对象 /obj/。强烈建议您改用 Destroy。 |
| DontDestroyOnLoad | 加载新场景时,不自动销毁对象 /target/。 |
| FindObjectOfType | 返回第一个类型为 type 的已加载的激活对象。 |
| FindObjectsOfType | 返回所有类型为 type 的已加载的激活对象的列表。 |
| Instantiate | 克隆 original 对象并返回克隆对象。 |
| CreateInstance | 创建脚本化对象的实例。 |
| bool | 该对象是否存在? |
| operator != | 比较两个对象是否引用不同的对象。 |
| operator == | 比较两个对象引用,判断它们是否引用同一个对象。 |