找回密码
 立即注册
查看: 282|回复: 0

unity中Toggle组件的使用心得

[复制链接]
发表于 2022-6-5 10:20 | 显示全部楼层 |阅读模式
使用unity也有很长一段时间了,个人觉得unity这款引擎学习起来还是比较容易的,但是对于一些初学者来说,可能有些困难。我初学unity时也遇到很多问题,尽管现在看起来很简单,但是对于那个时候的我来说还是有难度的。我猜测一定有和我一样遇到同样问题的unity学习者,今天写下我对unity组件中的一种组件---Toggle的心得。
Toggle(开关)是Unity中UGUI里面的一个组件。一般用于做单选开关。比如写一个飞机大战的游戏,我们选择战机就可以用到这个组件。那么我今天讲的不是一个toggle,而是多个toggle在一起的情况,那么我们就需要用到ToggleGroup(开关组)这个组件了。效果图如下:



在unity里面制作开关组还是很简单的,我这里就不细说。我要说的是怎样通过脚本根据isOn的值来选择对应的飞机。大家都知道toggle组件有个isOn的属性,勾选上表示开关组当前启用的是这个toggle,没启用的都是没有勾选isOn的。如图:





这是最终效果图。但是真的这么简单吗?这里面还是有点东西的!

是不是有朋友和我一样,刚开始都是写个脚本,然后注册事件,然后点击运行。。。。。一顿操作猛如虎,一看结果0-5!如图:







你会发现和自己想的完全不一样!为什么我只选一个,开关显示的图片没问题,但是代码那边打印的却不一样?一次打印两个,这就很难受!初学unity的时候,我也被这个弄的很难受,搞了一下午的时间,百度上面也没找到,不知道是不是我关键字没打对还是其他的原因,反正都没弄好,直到我捣鼓了半天过后,发现新大陆似的看到了一个东西:OnValueChanged.

然后我就想:是不是isOn需要匹配unity自带的函数?我就写了一个OnValueChanged();然后注册事件的时候发现居然有两个这样的函数:



最终经过我的调试,得出初步结论:toggle开关组使用代码通过isOn属性判断选择的开关到底是那个的时候,需要写上特定的函数OnValueChanged(),并且注册事件时要选择上面的OnValueChanged()函数。因为我们要根据isOn的情况来判断到底选择的是哪个开关。所以需要使用动态的OnValueChanged()方法。同时要在三个toggle上挂载脚本:




这样的话,就实现了我的需求,也就是本文开头的效果。这是我对toggle的使用心得,不知道我说的够不够清楚。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-16 04:42 , Processed in 0.088668 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表