UG3L4——Toggle 单选框
UG3L4——Toggle 单选框
Toggle
Toggle
是开关组件,是UGUI中用于处理玩家单选框多选框相关交互的关键组件
开关组件 默认是多选框,可以通过配合 ToggleGroup
组件制作为单选框
默认创建的Toggle由4个对象组成
- 父对象 —— Toggle组件依附
- 子对象 —— 背景图(必备)、选中图(必备)、说明文字(可选)
本章代码关键字
1 | Toggle //单选框类 |
Toggle 参数相关
-
Interactable:是否接受输入
-
Transition:响应用户输入的过渡效果
-
Navigation:导航模式
可以设置UI元素如何在播放模式中控制器导航- 以上三个参数和Button上的参数一样
-
Is On:当前是否处于打开状态
-
Toggle Transition:在开关值变化时的过渡方式
- None:无任何过渡,直接显示隐藏
- Fade:淡入淡出
-
Graphic:用于表示选中状态的图片
-
Group:单选框分组
需要额外找对象挂载一个Toggle Group,然后同组的Togle都选择它
- Allow Switch Off:是否允许不选中任何一个单选框
注意:单选框分组组件可以挂载在任何对象上,只需要将其和一组的单选框关联即可
- Allow Switch Off:是否允许不选中任何一个单选框
-
OnValueChanged:开关状态变化时执行的函数列表
代码控制 Toggle
面板上的参数都可以用代码控制
1 | Toggle toggle = GetComponent<Toggle>(); |
Toggle Group也可以通过代码控制
1 | ToggleGroup toggleGroup = GetComponent<ToggleGroup>(); |
得到当前处于激活状态的Toggle
可以遍历提供的迭代器 得到当前处于选中的状态的Toggle
1 | foreach (Toggle item in toggleGroup.ActiveToggles()) |
监听事件的两种方式
需要参数为bool类型的函数,表示当前toggle是否被选中
-
拖脚本
首先在脚本内写好公共函数(非公共函数无法调用),必须要有一个Bool类型的参数
1
2
3
4
5
6
7
8
9
10using UnityEngine;
using UnityEngine.UI;
public class Lesson11 : MonoBehaviour
{
public void ChangeValue(bool isOn)
{
print("状态改变");
}
}然后在OnValueChanged()列表内添加函数(按[+]),拖入Toggle对象,选择挂载在Toggle对象上的脚本中的函数
切记,一定要选择动态bool值(Dynamic bool)的函数,而不是静态参数(Static Parameters)的函数!否则可能无法获取当前toggle的选中状态
-
代码控制
向Toggle的onValueChanged内使用方法来添加函数,移除函数,函数不限公共还是私有
-
向onValueChanged添加函数
1
2
3
4
5toggle.onValueChanged.AddListener(ChangeValue2);
toggle.onValueChanged.AddListener((b) => //参数前面可以不加bool,会自动判断
{
print("代码监听状态改变2" + b);
}); -
移除函数和Button的内容类似
-
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!