练习目标

练习单选框,多选框

Toggle Group:Toggle容器

Toggle:单一的选项

练习步骤

1、创建一个Panel,命名TogglePanel,添加Toggle Group组件,可以看到ToggleGroup面板十分的简洁,那看来Toggle触发的事件要在child下完成了.

TogglePanel属性面板

2、在TogglePanel下创建两个Toggle,命名ToggleRed,ToggleBlue,默认创建的Toggle,是这样的

属性面板如下( 属性标注出了可以拦截的事件):

3、在步骤1说过,ToggleGroup并没有提供可设置的属性,所以触发事件要在Toggle下完成了,通过观察Toggle,发现了下面这个事件

Toggle事件示例

4、所以需要我们自己写脚本,来处理Toggle事件啦,创建ToggleScene.cs 绑定在TogglePanel上,

using UnityEngine;
using System.Collections;
using UnityEngine.UI; public class ToggleScene : MonoBehaviour {
public Toggle toggle1;
void Start()
{
toggle1.onValueChanged.AddListener(OnValueChanged);
} void OnValueChanged(bool check)
{
Debug.Log(check);
}
}

单选框效果

把Toggle1赋给脚本中的toggle1,Ctrl+P 运行

选择不同的Toggle,可以看到控制台Log

Toggle切换Panel效果

下面使用Toggle来切换Panel,效果如下所示

步骤

1、继续上面的步骤,添加两个Panel,命名Red Panel ,Blue Panel,把这两个Panel叠在一起(位置和大小相同,颜色不同),隐藏其中一个

修改示例代码

2、修改ToggleScene.cs

using UnityEngine;
using UnityEngine.UI; public class ToggleScene : MonoBehaviour
{
[SerializeField]
private GameObject bluePanel, redPanel;
[SerializeField]
private Toggle toggleRed, toggleBlue; void Start()
{
toggleRed.onValueChanged.AddListener(OnValChangedRed);
toggleBlue.onValueChanged.AddListener(OnValChangedBlue);
} void OnValChangedRed(bool check)
{
bluePanel.SetActive(!check);
redPanel.SetActive(check);
}
void OnValChangedBlue(bool check)
{
bluePanel.SetActive(check);
redPanel.SetActive(!check);
}
}

3、把ToggleScene绑定在 Toggle Panel上,并赋好值,按Ctrl+P 运行,即可切换Panel

uGUI练习(九) Toggle Button的更多相关文章

  1. [Angular 2] Building a Toggle Button Component

    This lesson shows you how to build a Toggle Button in Angular 2 from scratch. It covers using transc ...

  2. 用uGUI开发自定义Toggle Slider控件

    一.前言 写完<Unity4.6新UI系统初探>后,我模仿手机上的UI分别用uGui和NGUI做了一个仅用作演示的ToggleSlider,我认为这个小小的控件已能体现自定义控件的开发过程 ...

  3. Unity UGUI基础之Toggle

    Toggle组合按钮(单选框),可以将多个Toggle按钮加入一个组,则他们之间只能有一个处于选中状态(Toggle组合不允许关闭的话). 一.Toggle组件: Toggle大部分属性等同于Butt ...

  4. (转载)Unity UGUI点击不同Button执行不同的方法(无参方法)

      将脚本随意挂在任何位置 但是这个btnParent一定是 按钮的父节点   脚本很简单自己敲一遍就全都明白了 上脚本 OnClickTest using UnityEngine; using Un ...

  5. 【Facebook的UI开发框架React入门之九】button简单介绍(iOS平台)-goodmao

    --------------------------------------------------------------------------------------------------- ...

  6. uGUI练习 开篇

    一.准备阶段 1.Unity 4.6 Beta b18或更高版本(注:目前泄露版的Unity5.0Beta 对UI的支持并没有4.6 Beta那么好) 2.了解 Unity 2D Sprite的基础知 ...

  7. Unity UGUI基础之Button

    UGUI Button,可以说是真正的使用最广泛.功能最全面.几乎涵盖任何模块无所不用无所不能的组件,掌握了它的灵巧使用,你就几乎掌握了大半个UGUI! 一.Button组件: Interactabl ...

  8. Unity4.6新UI系统初探(uGUI)

    一.引言 Unity终于在即将到来的4.6版本内集成了所见即所得的UI解决方案(视频).事实上从近几个版本开始,Unity就在为这套系统做技术扩展,以保证最终能实现较理想的UI系统.本文试图通过初步的 ...

  9. Unity UGUI

    超详细的基础教程传送门:(持续更新中) Unity UGUI之Canvas&EventSystem:http://blog.csdn.net/qq992817263/article/detai ...

随机推荐

  1. 【FFmpeg】ffplay播放rtsp视频流花屏问题

    问题描述:ffplay播放rtsp视频流时,播放过程中随机出现花屏现象. 基本流程学习:阅读ffplay源码,熟悉其播放rtsp视频流的基本流程. 在ffplay源码阅读和分析的基础上,画出了其播放r ...

  2. DOM笔记整理及应用实例

    一.前言 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model).HTML DOM 模型被构造为对象的树 通过可编程的对象模型,JavaScript 获得了足够的 ...

  3. [js开源组件开发]js手机端浮层控件,并有多种弹出小提示,兼容pc端浏览器

    js dialog组件,包含alert和confirm的实现 本组件所有的资源均在github上可以查看源代码 GitHub 本dialog的组件的例子请在这里查看 demo dialog js di ...

  4. vh属性-- 一个永远垂直居中的弹出框

    下面的demo,无论浏览器大小如何改变,滚动条是否滚动,弹出框永远水平垂直居中 <html> <head> <title></title> </h ...

  5. SharedPreference.Editor的apply和commit方法异同

    这两个方法的区别在于: 1. apply没有返回值而commit返回boolean表明修改是否提交成功 2. apply是将修改数据原子提交到内存, 而后异步真正提交到硬件磁盘, 而commit是同步 ...

  6. linux服务器如何设置目录权限,让开发只能在测试目录下开发,不在线上目录上开发

    当一台服务器上,既有测试环境,也有生成的环境,开发需要在线上测试,如果开发生产环境的权限,那开发容易误操作 需求如下: (1)生产环境的代码,必须有专用的账号登陆进行管理 (2)开发测试环境的代码,开 ...

  7. 去掉 Android工程中让人很不爽的“黄色警告”

    一:问题       二:解决方法 (1)选择android工程,右键Android Tools —> Clear Lint Markers 这种方式能够清除android工程里面的所有警告信息 ...

  8. Android 之 Intent(意图)

    Intent是 Android中重要的桥梁之一,它分为显式意图和隐式意图.接下来分别针对这两种意图进行讲解. 显式意图:通过指定一组数据或动作,激活应用内部的 activity:(相比隐式意图,此做法 ...

  9. .NET下的并行开发(案例代码)

    以下主要是通过一个报表处理程序来说明并行开发的方式.对于数据冲突和共享,可以通过对象数组解决.设计到并行的核心代码已用红色标出.在并行程序的处理上,需要把原来串行的子公司变成一个一个类的对象,让所有的 ...

  10. SPC.NET,为5年的开发做个结尾

    从08年到如今从事asp.net开发已五年,起初只是一个简单的喜好,想做个东西出来.于是SPC.NET的前生诞生了,直至今日. 不得不说,一个人开发一个软件是很辛苦的事情,以下是SPC.NET的一些特 ...