当前位置: 首页 > news >正文

UGUI交互组件Toggle

一.Toggle对象的构造

Toggle和Button类似,是交互组件的一种

如果所示,通过菜单创建了两个Toggle,Toggle2中更换了背景和标记资源

对象说明
Toggle含有Toggle组件的对象
Background开关背景
Checkmark开关选中标记
Label名称文本

二.Toggle组件属性

属性说明
Is On开关按钮
Toggle TransitionToggle过渡
Graphic用来控制 Toggle 开关图片的显示/隐藏
Group用来表示 Toggle 所属开关组/群(下文会讲到)
On Value Changed监听事件,值改变时调用

三.事件监听

3.1 可视化监听

注意:事件响应函数需要为单参数才能在这里找到

3.2 代码监听

public class CToggle : MonoBehaviour
{private Toggle m_Toggle;void Start(){m_Toggle = GameObject.Find("Toggle").GetComponent<Toggle>();m_Toggle.onValueChanged.AddListener(delegate (bool isOn){ToggleOnValueChanged(isOn);});}public void ToggleOnValueChanged(bool isOn){if (isOn){Debug.Log("toggle On");}else{Debug.Log("toggle off");}}
}

四.Toggle Group

4.1 开关的两个重要应用场景:页签切换和单选设置

4.2 Toggle Group组件

要实现这样的效果需要使用Toggle Group组件,创建一个空对象,添加Toggle Group组件

Toggle Group组件只有一个属性Allow Switch Off

默认情况下,一组Toggle至少会有一个处于激活状态,如果这个选项不勾选的话,是不可能存在一组内一个Toggle都未激活的。

如果勾选了这个Allow Switch Off就相当于允许本组内的Toggle出现一个都未选中激活的状态。

4.3 Toggle组件的Group属性

将所有Toggle的Group属性设置为GameObject,可以选中所有Toggle然后把GameObject拖进去

接下来运行就变成单选效果了。

4.4 换页效果的一种做法

由于实现简单这里不做过多说明,直接上代码

public class CToggle : MonoBehaviour
{private Toggle[] allToggle;private Image[] allBg;void Start(){allToggle = new Toggle[3];allBg = new Image[3];for (int i = 0; i < 3; i++){int idx = i;allToggle[i] = GameObject.Find("Toggle" + i).GetComponent<Toggle>();allBg[i] = GameObject.Find("bg" + i).GetComponent<Image>();allToggle[i].onValueChanged.AddListener(delegate (bool isOn){ToggleOnValueChanged(isOn, idx);});}}public void ToggleOnValueChanged(bool isOn, int selectIndex){string str = isOn ? " on" : " off";Debug.Log("Toggle"+ selectIndex + str);if (isOn){for (int i = 0; i < allBg.Length; i++){allBg[i].gameObject.SetActive(false);}allBg[selectIndex].gameObject.SetActive(true);}}
}

http://www.lryc.cn/news/182545.html

相关文章:

  • 亲,您的假期余额已经严重不足了......
  • 【软件测试】自动化测试selenium(一)
  • Nginx实现动静分离
  • 【算法题】309. 买卖股票的最佳时机含冷冻期
  • 1951-2011年长序列高时空分辨率月尺度温度和降水数据集
  • 十天学完基础数据结构-第六天(树(Tree))
  • RobotFramework流程控制(最新版本)
  • win11 好用的 快捷方式 --chatGPT
  • 在大数据相关技术中,HBase是个分布的、面向列的开源数据库,是一个适合于非结构化数据存储的数据库。
  • 910数据结构(2020年真题)
  • MyBatisPlus(八)范围查询
  • 【day10.04】QT实现TCP服务器客户端搭建的代码
  • milvus 结合Thowee 文本转向量 ,新建表,存储,搜索,删除
  • GEO生信数据挖掘(三)芯片探针ID与基因名映射处理
  • 力扣 -- 96. 不同的二叉搜索树
  • 经典算法-枚举法(百钱买百鸡问题)
  • Gurobi设置初始可行解
  • Zabbix配置监控文件系统可用空间小于30GB自动告警
  • 进程调度算法之先来先服务(FCFS),短作业优先(SJF)以及高响应比优先(HRRN)
  • MyBatisPlus(九)模糊查询
  • Spring 原理
  • 基于微信小程序的明星应援小程序设计与实现(源码+lw+部署文档+讲解等)
  • try catch 中的finally什么时候运行
  • 力扣 -- 322. 零钱兑换(完全背包问题)
  • [python]pip安装requiements.txt跳过错误包继续安装
  • 1.5 计算机网络的类别
  • Go 基本数据类型和 string 类型介绍
  • Python中print()打印如何不换行?
  • python 学习随笔 4
  • 【网络安全-信息收集】网络安全之信息收集和信息收集工具讲解