怎样判断是否应当使用复选框

  复选框,就是对一个选项做上一个标记,表示这个选项已经被选中了。在游戏中,复选框一般用来做一些选项的控制,这种选项一般都只有两种答案:是和否。例如,单击一下开启音乐的复选框,这个复选框上就打了一个勾,然后音乐在游戏中就会开发;如果再单击一下,则这个勾会取消掉,然后音乐相会在游戏中关闭。这就是复选框最常见的用法。

  要判断是否要使用复选框时,可以遵循以下规律。

    (1)该功能只有两种选择状态:是、否。

    (2)该功能同一时间只能激活且必须激活一种选择状态。

    (3)该功能的两种状态为互斥关系,如果选择了一种状态,则自动关闭另一种状态。

  复选框其实就是一个开关,可以通过单击它来切换打开和关闭。一般开关的应用包括了选项勾选和页签。页签是复选框功能的一个高级应用。

创建复选框

  1.第一种方法:使用NGUI做好的预设。

  2.第二种方法:自己拼装复选框控件。

    (1)通过Unity顶部NGUI菜单Create中选择创建一个Sprite,然后设置它的图片,让这个Sprite作为复选框的底框。

    (2)因为需要这个复选框来接收单击事件,所以为这个底框Sprite制作一个BoxCollider,方法可以使用Unity顶部NGUI菜单中Attach->BoxCollider。

    (3)需要为这个复选框创建一个复选框的核心组件:UIToggle,选中底框后,通过选择AddComponent->NGUI->Interaction->UIToggle为这个复选框的底框附加一个UIToggle组件。

    (4)在这个底框的Sprite下面创建一个新的、表示选中状态的Sprite,比如一个勾。

    (5)将这个表示选中状态的Sprite拖动到底框UIToggle组件中StateTransition模块下的Sprite选项中,然后将底框的UIToggle组件中的Starting State勾上。

  一般情况下,会在复选概况的旁边写上一些文字,表示这个复选框代表的什么选项,即在底框物体下面创建一个Label作为子物体,然后调整位置即可。

复选框的核心组件UIToggle

  1.Group

    开关组的设置。默认为0,表示没有开关组。

    当有多个Toggle的Group星等且都不为0的时候,表示它们在同一个开关组当中,同一个开关组内的开关只允许打开一个。

    当一个Toggle不属于某一个开关组,既Group为0时,它就属于一个独体开关,可以通过自身来进行开关,当它属于某一个开关组时,就无法通过单击自身来进行开启和关闭了,因为一个开关组内必须要有一个开关是出于开启状态,它必须通过开关组内部的过个Toggle之间的切换来进行关闭和开启。

  2.Starting State

    是否初始状态,如果选中,则为初始状态,不选中则不是。

    这个设置项的意义在于:当开关是一个独立开关(Group为0)时,勾选Starting State意味着在初始状态下,开关属于开启状态。当开关属于一个开关组时,勾选Starting State则意味着在初始状态下,这个开关组中初始处于代开状态的为这一个开关。

    当一个开关组中有一个以上的开关都勾选了Starting State时,则以这个组中排在最后的一个勾选了Starting State的Toggle为默认开启的开关。

  3.State Transition 模块

    这个模块是为了设置勾选的时候的一些关联UI表现。

    Sprite是设置选中状态下要显示出来的Sprite。设置的方法为,将表示选中的Sprite拖动到这个选项中即可。

    Animation是设置状态切换时的动画。

    Transition是选择开关切换时的一个平滑效果,里面提供了两种选项进行选择:Smooth和Instant,如果选择Smooth,则在进行开关切换时,表示选中的那个Sprite的消失和出现会显示得更加平滑一些;如果选择Instant,则开关切换时,表示选中的那个Sprite的消失和出现会瞬间出现。

  4.On Value Change

    这里是设置当前开关状态改变时触发的函数。

制作复选框(Toggle)的更多相关文章

  1. Unity C# 用枚举(enum)制作复选框

    最近在项目中做测试脚本用到一些布尔值做方法的开关,突然想到可以制作一个复选框控制开关. 首先搜集网上的资料,基本大同小异,这里就不多做解释了,代码附上: public class EnumFlagsA ...

  2. 可分组的选择框控件(MVVM下)(Toggle样式 仿造单选框RadioButton,复选框CheckBox功能)

    原地址: http://www.cnblogs.com/yk250/p/5660340.html 效果图如下:支持分组的单选框,复选框样式和MVVM下功能的实现.这是项目中一个快捷键功能的扩展. 1, ...

  3. 使用CSS3制作酷炫防苹果复选框 自行测试!

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 制作带复选框的ListView控件

    实现效果: 知识运用   ListView控件的GridLines //设置是否在ListView控件中显示网格线 public bool GridLines{get;set} 和CheckBoxes ...

  5. nodetree中 前面复选框禁用插件

    nodetree中 前面复选框的去掉插件 extendTreeCheck.js /** * tree方法扩展 * 作者:小雪转中雪 */ $.extend($.fn.tree.methods, { / ...

  6. 使用CSS3美化复选框checkbox

    我们知道HTML默认的复选框样式十分简陋,而以图片代替复选框的美化方式会给页面表单的处理带来麻烦,那么本文将结合实例带您一起了解一下使用CSS3将复选框checkbox进行样式美化,并且带上超酷的滑动 ...

  7. 关于textjs的tree带复选框的树

    通过查阅一些资料和自己之前了解到的一些相关知识,有时项目中需要用到.话不多说,先看一下效果图: 我写的这人员选择的树,主要是改写了TreePanel,如下代码: ExtendTreePanel.js ...

  8. Android实战之ListView复选框

    项目中有用到复选框的例子,啊啊......在网上查找有关资料,大多都是过于繁琐,所以自己决定写个这个方面的demo... 先给个效果图: 在ListView中添加复选框主要注意以下几个问题: 1.Li ...

  9. 期货大赛项目|六,iCheck漂亮的复选框

    废话不多说,直接上图 对,还是上篇文章的图,这次我们不研究datatables,而是看这个复选框,比平常的复选框漂亮太多 看看我是如何实现的吧 插件叫iCheck 用法也简单 引入js和css $(& ...

随机推荐

  1. 给jdk写注释系列之jdk1.6容器(6)-HashSet源码解析&Map迭代器

    今天的主角是HashSet,Set是什么东东,当然也是一种java容器了.      现在再看到Hash心底里有没有会心一笑呢,这里不再赘述hash的概念原理等一大堆东西了(不懂得需要先回去看下Has ...

  2. LeetCode 3

    Longest Substring Without Repeating Characters Given a string, find the length of the longest substr ...

  3. The Signals Of Process Communication

    在之前大概的概述了进程之间的通信,下面笔者具体述说一下进程通信中最古老的一种通信方式之一---信号(Signals ),信号是用户进程之间通信和同步的一种原始机制,操作系统通过信号来通知进程系统中发生 ...

  4. 用bat使用date和time命令

    D:\>date /T 2010-12-10 星期五 D:\>echo %date:~0,10% 2010-12-10 date:命令(别忘记date后面有个冒号) ~0:从索引0开始取内 ...

  5. discuze回放提示“抱歉,您的请求来路不正确或表单验证串不符,无法提交”

    不知从哪里看到文章,但是实用: 背景:discuze就单纯的录制一个注册脚本,日志中没有报错,在报告中就提示"抱歉,您的请求来路不正确或表单验证串不符,无法提交"",以下 ...

  6. MJViewController的view的创建

  7. iOS 视频开发-AVPlayer

    如果我只是简单的播放一个视频,而不需要考虑播放器的界面.iOS9.0 之前使用 MPMoviePlayerController, 或者内部自带一个 view 的 MPMoviePlayerViewCo ...

  8. Window 中常见的dos命令

    在哪里操作dos命令:    win7---->开始---->所有程序---->附件---->命令提示符                              win7-- ...

  9. Java Concurrency - 浅析 CyclicBarrier 的用法

    The Java concurrency API provides a synchronizing utility that allows the synchronization of two or ...

  10. python字符串操作2

    在python有各种各样的string操作函数.在历史上string类在python中经历了一段轮回的历史.在最开始的时候,python有一个专 门的string的module,要使用string的方 ...