UG1L3——多选框和单选框
UG1L3——多选框和单选框
本章代码关键字
1 | GUI.Toggle() //绘制多选框,第二个参数需要传入当前是否选中的值,返回这一帧是否被选中的值 |
多选框
GUI.Toggle
会绘制一个多选框,第二个参数需要传入当前是否选中的值,返回这一帧是否被选中的值,其余参数和其他控件差不多
因此,使用GUI.Toggle
绘制的多选框,必须要在外面声明一个bool
变量,用来存储多选框是否被选中的值
该变量需要传入到GUI.Toggle
内,再返回给该变量,这样才能实现多选框选中的效果
1 | private bool isSel; |
自定义样式的显示问题
GUI.Toggle
使用GUIStyle时,我们可以通过设置背景图来自定义是否选中的图标,Normal是未选中时图标,OnNormal是选中时图标
但是直接设置会有显示问题,需要设置如下内容:
- 背景图拉伸,铺满文字:设置Fixed Width和Fixed Height,以设置背景图的宽高
- 文字与背景图重叠:设置Padding,可偏移文本到UI控件的边缘的量,可用于设置文本位置
1 | private bool isSel; |
单选框
单选框是基于多选框实现的,通过一个int
来标识哪个选项被选中了,
通过比较标识值与选项对应的值来决定哪个单选框显示被选中,
当单选框被选中时,就修改标识的值,从而实现单选框的效果
注意,下面的代码是,那个选项被选中,那个if语句块就会每帧都执行一次,而不是修改选项时才会执行一次!
注意:下面的代码中当Toggle被选中,对应的那个if代码块就会每帧都执行一次,
1 | private int nowSelIndex = 1; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!