unity中Toggle组件的使用心得
使用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的使用心得,不知道我说的够不够清楚。
页:
[1]