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相关推荐

  1. Unity3d Ugui 10 Toggle ToggleGroup

    做单选或者多选使用 Interactable:点击是否有效 Transition:状态切换模式 None:没有切换效果 Color Tint:颜色切换模式 Target Graphic:默认显示的图片 ...

  2. Unity3d UGUI 通用Confirm确认对话框实现(Inventory Pro学习总结)

    背景 曾几何时,在Winform中,使用MessageBox对话框是如此happy,后来还有人封装了可以选择各种图标和带隐藏详情的MessageBox,现在Unity3d UGui就没有了这样的好事情 ...

  3. Unity3d Ugui图片上制作点光 、棱形光效果shader,并具有裁切

    Unity3d Ugui图片上制作点光 .棱形光效果 实现的效果可以参考如下图所示 通过shader来实现上述的效果,为了大家的适应性,推荐在unity官方的默认ui shader上更改,我用的是20 ...

  4. Unity3d UGUI基础控件使用(一)

    转载自:Unity3d UGUI基础控件使用(一) 一:UGUI介绍 UGUI是Unity4.6之后,经过多重测试,推出全新的UI系统,更灵活,快捷,易用的可视化游戏UI开发工具. 由于之前传统的UI ...

  5. Unity3d UGUI 实现底部UI自适应的功能(含工程)

    Unity3d UGUI 实现底部UI自适应的功能(含工程) 前言 UI的自适应常常在项目中使用到,特别手游中,不同比例屏幕的手机,如果能考一套UI自适应显示,能省去不少的开发工作量.这里只是浅浅的讨 ...

  6. Unity3D - UGUI的手动搭建

    了解UGUI组件的搭建方式,有助于搭建我们自己的UI界面. Text 文本 text 是UGUI中的基本控件,在Hierarchyi面板创建一个空物体 - 给这个空物体添加一个Text组件即可实现与t ...

  7. unity3d UGUI九宫格纹理拉伸的使用

    本篇文章我们来学习下在unity new ui即UGUI九宫格纹理拉伸的使用,不论是游戏中的UI,还是应用中的UI,纹理九宫格拉伸都是必不可少的,因为采用这种拉伸方式,可以最大化的节省纹理资源,任意缩 ...

  8. Unity3D UGUI学习笔记

    本文主要记录的是:Unity3d中UI设计方面的知识,重点记录各UI组件的使用,属性设置. U3D的UI控件放在GameObject>UI目录下. 所有添加的控件都会放在Canvas目录下(下图 ...

  9. Unity3D UGUI系列之合批

    目录 1. 什么是UGUI的合批 1.1 准备工作 1.2 批处理 1.3 批处理的意义 1.4 UGUI的合批 2 分析工具的使用 2.1 Frame Debugger的使用 2.2 Profile ...

最新文章

  1. 0215互联网新闻 | TikTok在美月度用户数量过去三个月内增加3000万;5G智能手机测试机首批正式交付...
  2. aes算法实现c语言_以C语言实现归并排序为例,谈谈五大常用算法之一的“分治法”...
  3. java扫描指定package注解_java获取包下被指定注解的类
  4. java学习二---对象和内存管理
  5. 【渝粤教育】广东开放大学 普通话训练 形成性考核 (48)
  6. 线程(进程线程的比较)
  7. ICLR 2022 | 合作博弈新范式:为可解释性等机器学习估值问题提供新方法
  8. 苹果开发者证书报错证书不受信任
  9. 6个实例电路,详解雷击浪涌的防护
  10. 使用Laravel和Vue.js2.5进行服务器端渲染
  11. 示波器探头对测量可能引起的10种影响
  12. 51单片机的定时器/计数器及编程
  13. HIVE最全面入门指南
  14. 固态硬盘SSD和机械硬盘哪个好?它们有什么区别?
  15. 【电路补习笔记】8、稳压电路 —— 线性电源及LDO
  16. kb3020369不适用计算机,适用于Windows 7的Service Pack 2 Microsoft发布KB3020369便利汇总更新 | MOS86...
  17. vue報錯 To install it, you can run: npm install --save vue/types/umd
  18. mysql左链表右链表区别_MySql链表语句--博客园老牛大讲堂
  19. JAVA用数据留给出师表排序,如果诸葛亮会编程,用Java写出师表...
  20. 瑞幸入局无人零售:“不安分”的挑战者

热门文章

  1. MATLAB中 feval 函数的用法
  2. LLVM 之父 Chris Lattner:模块化设计决定 AI 前途,不服来辩
  3. docker部署zabbix_agent
  4. 网络:TCP与UDP
  5. 一个专科生的程序员之路
  6. POSTER: A PU Learning based System for Potential Malicious URL Detection
  7. 【论文阅读】Realtime Robust Malicious Traffic Detection via Frequency DomainAnalysis
  8. 唐诗android代码,Android 唐诗宋词软件(源码讲解)
  9. 17世纪初诞生了第一台电子计算机,世界上第一台计算机诞生于多少年?
  10. or在python中是什么意思_Python中and和or的用法