窗口开发的流程
1、引用UnityEditor命名空间
2、继承EditorWindow
3、创建一个窗口
4、利用OnEnable和OnDisable做初始化和关闭时的清理工作
5、利用OnGUI方法绘制一些我们需要的信息
基本的声明周期函数都有,举几个其他的函数
1、void OnHierarchyChange() :当Hirearchy面板上的物体发生改变时执行
一般用来游戏物体的改名 、添加、删除
2、void OnProjectChange() : 当Project面板里的资源发生改变时执行
一般是资源的导入,删除等等
3、void OnSelectionChange() :当选中的物体发生改变时,执行该方法
提示信息
ShowNotification(new GUIContent(“信息”)) : 显示一个提示性的信息 (一定时间后会自动消失)
RemoveNotification() 直接关闭提示信息
强制设置当前选中的对象
Selection . activeGameObject = GameObject . Find( " " ); 注意: 一般只返回Inspactor界面可修改的物体
小用处 : 当 在updaye 函数里写入的话 会强制性的一直选中查找的一个物体
窗口图片:
LessonWindow window = EditorWindow . GetWindow <LesssonWindow>(false,"我的窗口“,true);
LessonWindow 自己写的的类名 我写在[MenuItem( " / ")] 特性下,在静态方法里使用了这个方法
这样可以在界面上方选项直接创建该类的窗口
window.minSize = new Vector2(400, 500);//设置窗口的最小尺寸,宽和高
window.maxSize = new Vector2(800, 700);//设置窗口的最大尺寸,宽和高
maximized :设置窗口最大化将使Unity编辑器和Unity屏幕一样大,如果窗口没有被连接,这个值将永远是false, 并且设置它将没有效果(是否最大化,要注意窗口是否浮动)
例如 :EditorGUILayout. Toggle("最大化",maximized)
window.Show(); 窗口显示
window . Focus() 自动对焦到该窗口
忘了啥用了,先记一下
EditorWindow. focusedWindow : 当前选中的窗口
Editorwindow. mouseOverWindow : 鼠标当前悬停的窗口,注意,有可能是null