当前位置:   article > 正文

UnityEditor自定义Window_editorwindow.focuswindowifitsopen

editorwindow.focuswindowifitsopen

UnityEditor自定义Window

一、EditorWindow类

1.静态字段和方法

获取窗口

返回当前在屏幕上的第一个类型为t的编辑器窗口。

如果没有找到,会创建一个新窗口

方法:
EditorWindow GetWindow
T GetWindow<T>
T GetWindowWithRect<T>
EditorWindow GetWindowWithRect
参数:
Type t
窗口的类型。需要继承 EditorWindow 类
bool utility (默认为 false)
设置为true,创建一个浮动的实用程序窗口,设置为false,创建一个普通窗口。
string title (默认为 null)
如果 GetWindow 创建了一个新窗口,它将获得这个标题。如果该值为空,则使用类名作为标题。
bool focus (默认为 true)
是否给窗口焦点,如果它已经存在。(如果GetWindow创建了一个新窗口,它将始终获得焦点)。
Rect rect
新创建窗口在屏幕上显示的位置。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

聚焦窗口

如果第一个找到的指定类型的编辑器窗口是打开的,则聚焦它。

void FocusWindowIfItsOpen<T>() where T : EditorWindow
void FocusWindowIfItsOpen(Type t)
  • 1
  • 2

字段

当前聚焦的窗口(只读)
EditorWindow focusedWindow
当前鼠标悬停的窗口(只读)
EditorWindow mouseOverWindow
  • 1
  • 2
  • 3
  • 4

2.非静态字段和方法

方法

void BeginWindows()
标记所有弹出窗口的开始区域。内镶窗口。
void Close()
关闭编辑器窗口。
void BeginWindows()
关闭由EditorWindow启动的窗口组。对应 BeginWindows()
void Focus()
将键盘焦点移动到另一个编辑器窗口。
void RemoveNotification()
停止显示通知消息。
void Repaint()
让窗户重新油漆。
bool SendEvent(Event e)
向窗口发送事件。
void Show()
void Show(bool immediateDisplay)
显示编辑器窗口。 
	immediateDisplay: 是否立即显示。
void ShowAsDropDown(Rect buttonRect, Vector2 windowSize)
显示一个具有下拉行为和样式的窗口。
	buttonRect:用来确定窗口位置的按钮(参见说明)。
	windowSize:窗口的初始大小。
void ShowAuxWindow()
在辅助窗口中显示编辑器窗口。
ShowNotification(GUIContent notification)
显示通知消息。
void ShowPopup()
void ShowTab()
使用弹出式框架显示编辑器窗口。
void ShowUtility()
将编辑器窗口显示为浮动实用程序窗口。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

字段

GUIContent titleContent 用于绘制EditorWindows标题的GUIContent
string title 窗口标题(弃用)
Vector2 maxSize 窗口最大大小
Vector2 minSize 窗口最小大小
bool maximized 窗口是否最大化
bool autoRepaintOnSceneChange 当场景发生变化时,窗口是否会自动重新绘制?
bool wantsMouseEnterLeaveWindow 在这个编辑器窗口中检查是否在GUI中接收了MouseEnterWindow和mouselewindow事件。
bool wantsMouseMove 检查是否在这个编辑器窗口的GUI中接收到MouseMove事件
Rect position 窗口在屏幕空间中的期望位置
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

3.创建一个自定义窗口

public class MyWindow : EditorWindow
{
    [MenuItem("自定义窗口/MyWindow")]
    static void CreateMyWindow()
    {
        MyWindow myWindow = EditorWindow.GetWindow<MyWindow>("自定义");
        myWindow.Show();
    }

    private void OnGUI()
    {
        //使用 GUI GUILayout EdotorGUILayout 绘制窗口
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号