前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >零基础入门 17: UGUI Toggle

零基础入门 17: UGUI Toggle

作者头像
韩东吉
发布2018-10-19 17:01:35
1.8K0
发布2018-10-19 17:01:35
举报

很久没更,最近公司的手游准备二测,加上蛮牛上教程的同步更新,所以一直到现在才开始恢复公众号的内容更新。之后会在游戏蛮牛和公众号上同步更新。

附上蛮牛地址:http://www.manew.com/forum-53-465-1.html(个人微信公众号不能直接附跳转链接,大家可以复制链接地址粘贴到浏览器中访问即可。)

今天还是继续UGUI主题的分享,今天分享的内容是UGUI里的Toggle组件。

进入正题


说到Toggle,可能大家会觉得陌生,什么是toggle?Unity中的Toggle可以说是一个或者是一组可以切换的按钮。

不管对Toggle理解多少,先来看下面一组游戏效果图

上面的一组可切换的功能按钮就是利用Unity里的Toggle组件制作的。现在是不是对Toggle已经有了一个大概的理解了,至少知道他是什么了,那具体怎么使用呢?

先在Unity里创建一个Toggle来看看他的结构。

再来看下Toggle这个组件的具体内容。

然后再来看下Toggle这个对象的父子关系。

猛然一看是不是觉得Toggle组件的内容和Button还是有些相像的?没错,Button和Toggle都有交互的开关(Interactable),以及Trasition的交互动画选择。

那不一样的就是从IsOn开始。

IsOn代表当前Toggle的开关是开着还是关闭的。

ToggleTrasition也是过渡的动画类型选择,Fade是渐变的意思。

Graphic是Toggle的切换文理。也就是第一个Gif图里的对勾。

Group是当前Toggle所属的组。不同的Toggle可以在一个分组内使用。

知道这些以后,重新回头看看第一个游戏内的效果图。

音乐音效等开关就是单独的Toggle使用。

下面的画质选择,就是让三个Toggle在一个Group组内。当其中一个选中后,会自动清除同组内其他Toggle的标记。

下面来看一下,如何增加Toggle的Group。

首先我们创建一个空的GameObject当做所有Toggle的组节点对象。然后增加一个组件,叫做Toggle Group。

来说下ToggleGroup这个组件,非常简单。他只有一个选项。

Allow Switch Off,这个开关是控制是否允许本组内的Toggle存在关闭状态的。

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

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

具体来看下这个Gif图。我们把之前创建好的Toggle放到GameObject下,并且再复制两个出来。

调整完合适的位置之后,把这三个Toggle的Group选项全部拖选成GameObject

此时GameObject上的Toggle Group的Allow属性是关闭的。运行游戏看看效果。

运行效果如上,此时,这组Toggle不允许出现一个都未激活的Toggle。

然后我们把Toggle Group的Allow Switch Off勾选。

功能就是这样,具体应该设置成什么样子,根据大家的需求来决定。

在知道如何编辑器下控制Toggle以后,接下来就到了脚本获取Toggle切换事件的获取了。

可想而知,我们从一个Toggle,切换成另外一个Toggle,或者单独的一个Toggle来回切换,我们如何通过代码得知这个事件?

老样子,创建一个脚本,然后公开一个Toggle,挂载到GameObejct上。

然后在脚本内打开Start函数,然后用Toggle去点,看看有什么方法和属性可以被点出来。

Toggle有一个事件叫做onValueChanged。代表Toggle的勾选状态发生了改变。我们可以通过监听这个函数,来监测Toggle在什么时候被切换。

通过上面的表达式,可以为我们的Toggle增加状态变化的监听事件。但是OnValueChanged是有一个Bool为参数的,来告诉我们,当前isOn的状态是True还是False。

那么我们在表达式内增加一个bool参数state,代表状态标记。

通过State来作状态区分,state为True代表Toggle被选中,否则被取消。

然后我们在这里增加些日志输出。

然后我们回到Unity来查看下运行效果。

好了,今天对Toggle的使用分享就到这里。

有问题大家可以给我留言。

ヾ( ̄▽ ̄)Bye~Bye~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 韩东吉的Unity杂货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档