Unity 编辑器扩展精粹_第四章.md 4.1 KB

子窗体,也是继承自编辑器窗体EditorWindow类,和布局基类ILayout

![[Pasted image 20240320120651.png]]

声明父类样式等,也有一个队列容器mChildren存放子界面体; 添加布局相关,从父物体移除,更新函数等,逻辑空着;

![[Pasted image 20240320120733.png]]

添加、移除子物体,清空等逻辑,也是同理; 页面刷新,也是调用子物体的DrawGUI绘制函数即可;

![[Pasted image 20240320120842.png]]

自定义,水平布局,是继承自Layout类,设置一下样式,再调用unity编辑器的GUILayout.BeginHorizontal水平布局接口即可

![[Pasted image 20240320121548.png]]

水平布局的结束位置,也是调用编辑器自带即可

![[Pasted image 20240320121655.png]]

垂直布局,同理,只是把,调用编辑器的接口,换成GUILayout.BeginVertical和EndVertical 即可

![[Pasted image 20240320121740.png]]

滑动条布局,设置一个滑动条位置,其余同理;

![[Pasted image 20240320121842.png]]

整一个数据和特性绑定的工具类,其中setted这个布尔,是用来判断,Action事件的触发,mValue就是事件对应的,特性值

![[Pasted image 20240320141213.png]]

绑定的事件容器队列,其中包含的Action事件汇总mSetter,解绑就是这两个的,遍历,减少交互操作

![[Pasted image 20240320141514.png]]

获取器和对应的,绑定方法

![[Pasted image 20240320141402.png]]

这个列表,是设定的基础界面类

![[Pasted image 20240320141646.png]]

Box的界面类,设定文本,OnGUI界面刷新方法体,是设置样式,调用编辑器自带的GUILayout.Box实例化窗体

![[Pasted image 20240320141751.png]]

按钮的界面类,有设定按钮点击绑定的,函数事件触发

![[Pasted image 20240320141934.png]]

颜色类,设定了一个Color的特性

![[Pasted image 20240320141959.png]]

默认界面类,界面刷新过程,会不断触发OnGUIAction

![[Pasted image 20240320142025.png]]

枚举,创建一个泛型特性ValueProperty,作为枚举变量

![[Pasted image 20240320142120.png]]

自适应空格

![[Pasted image 20240320142140.png]]

图片按钮,调用资源加载函数,去加载Texture2D纹理贴图,还有注册mOnClick点击逻辑

![[Pasted image 20240320142201.png]]

文本Label类,显示文本内容

![[Pasted image 20240320142709.png]]

滚动条,IndexProperty是一个整型特性,作为索引

![[Pasted image 20240320142957.png]]

空格

![[Pasted image 20240320143011.png]]

文本输入框,创建一个字符特性

![[Pasted image 20240320143025.png]]

文本显示区域,创建一个字符特性

![[Pasted image 20240320143056.png]]

勾选类,创建一个布尔的特性

![[Pasted image 20240320143114.png]]

菜单选项,是用来添加,切换菜单选项的,Index整型特性,也是索引; OnGUI刷新界面类,调用UILayout.Toolbar工具栏接口,对索引进行赋值即可;

![[Pasted image 20240320143911.png]]

树状节点,继承自垂直布局,包含两种布局,分别是mFirstLine和mSpreadView

![[Pasted image 20240320153029.png]]

构造函数,传参设置文本内容,完成俩布局的初始添加逻辑,调用一个CustomView基础窗体类

![[Pasted image 20240320153338.png]]

各个往布局,添加节点逻辑

![[Pasted image 20240320153520.png]]

除了之前的额外工具类,还有一些,其他的额外工具类; 这是子窗体的,静态额外工具,对应的静态方法:设置绝对位置,设置宽高;

![[Pasted image 20240320153809.png]]

还有居中

![[Pasted image 20240320153924.png]]

显示界面的,额外工具方法,设置布局的宽高,最大/最小高度

![[Pasted image 20240320153959.png]]

文本扩展,居中等样式设置

![[Pasted image 20240320154041.png]]

颜色和字体,样式相关设置

![[Pasted image 20240320154123.png]]

颜色和字符串的,互换方法体

![[Pasted image 20240320154215.png]]

数据模型接口

![[Pasted image 20240320154344.png]]

界面控制类的,基类接口

![[Pasted image 20240320154410.png]]

全局事件key接口,用来配合事件系统,注册事件

![[Pasted image 20240320154530.png]]