EditorWindow 类

EditorWindow类,继承 ScriptableObject,用于创建一个编辑器窗口,通常用 MenuItem 打开编辑器窗口


1、Static Properties

静态属性说明
focusedWindow (没啥用)当前具有键盘焦点的EditorWindow实例(可以为null)(只读)
mouseOverWindow (没啥用)当前在鼠标光标下的EditorWindow实例(可以为null)(只读)
public static EditorWindow focusedWindow; 
public static EditorWindow mouseOverWindow; 

2、Properties

属性说明
autoRepaintOnSceneChangebool类型,当场景发生变化时,窗口是否自动重新绘制
maximizedbool类型,可读可写,可使编辑器窗口最大化。注意当窗口undocked的时候设置该值没有效果
maxSize / minSizeVector2类型,如果最大最小都一样的话就可以限定窗口为不可缩放
positionRect类型,x y width height….,坐标的话是屏幕空间,左上角(0,0)
titleContentGUIContent类型,可以给编辑器指定icon、text、tooltip,如果使用icon,最好是在OnEnable(而不是构造函数中)来设置,另外可以直接在GetWindow的时候指定编辑器窗口名称
wantsMouseEnterLeaveWindow 略bool 检查MouseEnterWindow和MouseLeaveWindow事件是否在此编辑器窗口的GUI中接收(不理)
wantsMouseMove(略)bool 检查在这个编辑器窗口的GUI中是否接收了MouseMove事件(不理)

titleContent


3、public methods

公共方法说明
BeginWindows用于开始绘制子窗口
EndWindows用于结束绘制子窗口
Close用于关闭这个编辑器窗口
Focus调用这个函数的窗口实例获取键盘焦点
ShowNotification显示一个信息,注意该函数参数为 GUIContent
RemoveNotificationnotification信息会自动fade,而这个函数可以立刻移除notification
Repaint使窗口重绘(也没具体咋说,例子给的是在 OnInspectorUpdate 中调用 Repaint,那么效果是自定义编辑器重绘?没有这个的话也没啥影响。。。)
SendEvent将事件发送到窗口
============(以下几个貌似没什么大区别,不用理,不调用也没啥事。。。至于是不是浮动窗口,主要看 GetWindow 函数的 utility 参数)
Show显示窗口
ShowAsDropDown(Rect , Vector2)下拉行为和样式(无边框,差评)
ShowAuxWindow在辅助窗口中显示编辑器窗口。
ShowPopup使用弹出式框架显示编辑器窗口。
ShowUtility显示为浮动实用程序窗口(然而并没什么效果)

4、static methods

静态方法说明
FocusWindowIfItsOpen(Type)如果窗口打开,那么就会聚焦在这个窗口上
GetWindow获取窗口实例
GetWindowWithRect获取窗口实例,顺便指定了Rect
//最主要留意一点 utility 如果设为true,那么会是一个 带边框的 windows 浮动窗口类型

public static EditorWindow GetWindow(Type t, bool utility = false, string title = null, bool focus = true); 

public static T GetWindow();
public static T GetWindow(bool utility);
public static T GetWindow(bool utility, string title);
public static T GetWindow(string title);
public static T GetWindow(string title, bool focus);
public static T GetWindow(bool utility, string title, bool focus); 

//另外一点,desiredDockNextTo 是窗口将试图停靠的EditorWindow数组。

public static T GetWindow(params Type[] desiredDockNextTo);
public static T GetWindow(string title, params Type[] desiredDockNextTo);
public static T GetWindow(string title, bool focus, params Type[] desiredDockNextTo); 

5、Messages

这里写图片描述

注意这些是消息函数,是所有EditorWindow以及其子类都会有的消息函数。。。

消息函数说明
Awake在打开新窗口时调用。
OnDestroy关闭窗口时调用
OnFocus窗口获得键盘焦点时调用
OnLostFocus当窗口失去键盘焦点时调用。
OnGUI在这里绘制窗口的内容
onHierarchyChange有物体在hierarchy窗口中发生改变时调用
OnInspectorUpdateInspector更新,10帧每秒,意思难道是Inspector更新一次所有窗口都会调用一次这个函数
OnProjectChangeProject发生变化,就会调用
OnSelectionChange选择的东西发生改变就会调用
Update在所有可见窗口上每秒调用多次
继承的消息函数
Awake
OnDisable
OnEnable
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值