【Unity3D】UGUI之Toggle
1 Toggle属性面板
在 Hierarchy 窗口右键,选择 UI 列表里的 Toggle 控件,即可创建 Toggle 控件,选中创建的 Toggle 控件,按键盘【T】键,可以调整 Toggle 控件的大小和位置。

创建 Toggle 控件时,系统会自动为其创建 2 个 Image 子控件和 1 个 Text 控件,如下:

- Background:Image 控件,选择框背景;
- Checkmark:Image 控件,勾选图标;
- Label:Text 控件,选择框右边的文字说明。
Toggle 控件的属性面板如下:

说明:Group 用于指定分组,可以应用于复选框和单选框。
2 Toggle 注册事件
点击 OnValueChanged 下面的 “+” 号,可以为选择框添加响应事件,可以添加多个事件。
1)注册已有组件的方法
点击 OnValueChanged 下面的 “+” 号,将 Toggle 下面的 Label 拖拽到 OnValueChanged 面板里,选择 Text.text,下方文本设置 "xxxx",如下:

单击 Toggle,选择框右边的文本会显示为 “xxxx”,如下:

2)注册脚本组件里面的方法
给 Toggle 控件添加 ToggleController 脚本组件如下:
ToggleController.cs
using UnityEngine;
public class ToggleController : MonoBehaviour {
public void OnClick1() {
Debug.Log("Click1");
}
public void OnClick2(string msg) {
Debug.Log("Click2, msg=" + msg);
}
public void OnClick3(bool isOn) {
Debug.Log("Click3, isOn=" + isOn);
}
}
注意:待注册的方法,最多只能提供 1 个参数, 当参数为 bool 类型时,入参表示选择框的选中状态。
点击 OnValueChanged 下面的 “+” 号,将 ToggleController 脚本组件拖拽到 OnValueChanged 面板里,选择 ToggleController.OnClick1 方法;再点击 OnValueChanged 下面的 “+” 号,将 ToggleController 脚本组件拖拽到 OnValueChanged 面板里,选择 ToggleController.OnClick2 方法,其下方输入"xxxx";点击 OnValueChanged 下面的 “+” 号,将ToggleController 脚本组件拖拽到 OnValueChanged 面板里,选择 ToggleController.OnClick3 方法。如下:

单击 2 次选择框,打印日志如下:

3)代码里注册事件
给 Toggle 控件添加 ToggleController 脚本组件如下:
ToggleController.cs
using UnityEngine;
using UnityEngine.UI;
public class ToggleController : MonoBehaviour {
private void Start() {
Toggle toggle = GetComponent<Toggle>();
toggle.onValueChanged.AddListener(OnValueChanged);
}
public void OnValueChanged(bool isOn) {
Debug.Log("OnValueChanged, isOn=" + isOn);
}
}
注意:AddListener 方法里只能添加入参为 bool 类型的方法,可以添加多个方法。
单击 2 次选择框,打印日志如下:

3 Toggle Group(选择框组)
Toggle Group(选择框组)一般用于单选或多选。
在 Canvas 下创建一个 Empty 对象,改名为 ToggleGroup,在其下创建 4 个 Toggle 控件,并改名为 Toggle1~Toggle4,如下:

4 个 Toggle 设置 label 分别为 one、two、three、four,IsOn 属性都不勾选,如下:

给 ToggleGroup 对象添加 ToggleGroup 组件,如下:

说明:AllowSwitchOff 属性用于设置单选框是否允许一个都不选。
选中 Toggle1~Toggle4,将 ToggleGroup 对象拖拽到 Toggle1~Toggle4 的 Group 面板属性中,如下:

此时再单击选择框,选择框最多只有一个被选中(单选框),如下:

声明:本文转自【Unity3D】UGUI之Toggle
【Unity3D】UGUI之Toggle的更多相关文章
- Unity3d UGUI 通用Confirm确认对话框实现(Inventory Pro学习总结)
背景 曾几何时,在Winform中,使用MessageBox对话框是如此happy,后来还有人封装了可以选择各种图标和带隐藏详情的MessageBox,现在Unity3d UGui就没有了这样的好事情 ...
- ugui中toggle.isOn的属性笔记
准备知识 toggle:指unity3d引擎中UGUI的 toggle组件 (单选框) 本文使用lua语言描述 事件触发 使用unity的ugui,你如果细心观察会发现toggle在界面被关闭/隐藏( ...
- Unity3D 之UGUI 切换开关(toggle)
(toggle)开关能够实现通过点击实现开和关. 开关下面有两个游戏元素,一个是背景,一个是文字,背景是开关按钮的背景. 可以通过 Is ON开控制开关的开与关. Group -->分组,能够实 ...
- Unity3D UGUI之ScrollView弹簧效果
unity3d版本5.3.2p4 UGUI中ScrollView包含Viewport(Content) ScrollView包含脚本.其Movement Type一共3个选项.Elastic就是弹簧效 ...
- Unity3D UGUI下拉菜单/Dropdown组件用法、总结
Unity3D中UGUI实现下拉菜单 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...
- Unity3D - UGUI的手动搭建
了解UGUI组件的搭建方式,有助于搭建我们自己的UI界面. Text 文本 text 是UGUI中的基本控件,在Hierarchyi面板创建一个空物体 - 给这个空物体添加一个Text组件即可实现与t ...
- Unity3d uGUI适配
Cavas: 1.Render Model设置为:Screen Space- Camera.如果想在UI前面加特效我可以在创建一个摄像机(UIForward)深度大于这个UICamera就行了. 2. ...
- Unity3D UGUI学习系列索引(暂未完成)
U3D UGUI学习1 - 层级环境 U3D UGUI学习2 - Canvas U3D UGUI学习3 - RectTransform U3D UGUI学习4 - Text U3D UGUI学习5 - ...
- UGUI之Toggle使用
Toggle对象是一个开关.一般用于单选,可以用Toggle制作背包的选项卡 在场景中创建Toggle按钮.看看他有Toggle组件
- Unity3D UGUI窗口拖拽
在开发UGUI时 我们时常需要做一个窗口拖拽的功能 先上代码 using UnityEngine; using UnityEngine.EventSystems; public class DragW ...
随机推荐
- CDC设计实例-01
CDC设计实例 Clock Gating Cell & Glitch Free Clock Switch(门控单元和动态切换时钟) 一个电路有多个时钟输入进来,希望在工作当中能够动态切换时钟; ...
- Python Code_05位运算
coding:utf-8 author : 写bug的盼盼 development time : 2021/8/28 7:16 print(4&8)#非1即0 print(4|2)#同0即0, ...
- [转帖]windows10彻底关闭Windows Defender的4种方法
https://zhuanlan.zhihu.com/p/495107049 Windows Defender是windows10系统自带的杀毒软件.默认情况下它处于打开的状态.大多数第三方的杀毒软件 ...
- [转帖]ssd/san/sas/磁盘/光纤/RAID性能比较
https://plantegg.github.io/2022/01/25/ssd_san%E5%92%8Csas%E7%A3%81%E7%9B%98%E6%80%A7%E8%83%BD%E6%AF% ...
- [转帖]JVM——内存区域:运行时数据区域详解
https://www.jianshu.com/p/cded765cfd1b 关注:CodingTechWork,一起学习进步. 引言 我们经常会被问到一个问题是Java和C++有何区别?我们除了 ...
- [转帖]【性能】中断绑定和查看|irqbalance 中断负载均衡|CPU瓶颈
常用命令 ``` # 查看当前运行情况 service irqbalance status # 终止服务 service irqbalance stop 取消开机启动: chkconfig irqba ...
- [转帖]armv6、armv7、armv7s、armv8、armv64及其i386、x86_64区别
ARM处理器指令集 一. 苹果模拟器指令集: 指令集 分析 i386 针对intel通用微处理器32架构的 x86_64 针对x86架构的64位处理器 i386|x86_64 是Mac处理器的指令集, ...
- 在WPF应用中实现DataGrid的分组显示,以及嵌套明细展示效果
我在前面随笔<在Winform系统开发中,对表格列表中的内容进行分组展示>,介绍了Winform程序中对表格内容进行了分组的展示,在WPF应用中,同样也可以对表格的内容进行分组展示,不过处 ...
- RabbitMQ集成系统文章01---ABP VNext 分布式事务Event Bus 集成RabbitMQ
1.在两个应用中都配置好要连接的RabbitMQ "RabbitMQ": { "Connections": { "Default": { & ...
- windowsbat删除命令
widnwosbat命令 DEL /F /A /Q \?%1 用于删除指定路径下的文件,参数含义如下: /F: Force delete,即强制删除: /A: 用于指定文件属性,A代表存档,D代表目录 ...