·来源于唐老狮的视频教学,仅作记录和感悟记录,方便日后复习或者查找
一、Toggle是什么
1.定义与功能
Toggle就是开关,常用于做单选或者多选交互的关键UI。
它在UGUI中默认是多选框,但是可以搭配Toggle组件制作为单选框
2.组成
- 父对象:上挂载Toggle组件
- 子对象:背景图(必备)、选中图(必备)、说明文字(可选)
二、Toggle的参数
上面很多参数和Button上的类似
- IsOn:表示当前这个框是否处于勾选/打开状态
- Toggle transition:可以选择打开关闭的时候选中图有淡入淡出效果(Fade),或者没有(None)
- Graphic:选中图
就是里面这个勾,可以替换成其他图片
- Group:用于把几个Toggle选为一组,Group中是同一个Toggle Group的脚本算是一组,成为一组之后就变成单选的了(这一组里最多只能选一个)
- Allow Switch Off:勾选之后,这个组里的Toggle可以都处于关闭状态,否则一定要有一个处于打开的状态

三、Toggle的代码控制
- 获取改变isOn,来改变Toggle的开关状态
- 获取ToggleGroup脚本,改变里面的参数
- 获取ToggleGroup脚本,用它提供的迭代器去遍历搜索这个组中激活的Toggle
四、Toggle事件监听的两种方式
1.手动拖入脚本
现在脚本里写一个public 类型,带有一个bool类型参数的函数
然后拖进去并选择函数就好了。注意要选在Dynamic bool这里的函数
选Static Paramenters的效果和按钮差不多
2.代码控制
获取Toggle脚本后,用它的onValueChanged里面用AddListener加入需要监听的函数就好了。
注意:它需要是带一个bool类型参数的函数
五、其他
①在控制当前面板中所有的UI的脚本中,如果有需要动态去改变游戏中的数据的,可以考虑去新写一个专门用于存储数据的类,里面的数据是静态的,然后UI变换的时候改变的是这个类里的数据。内部游戏运行的时候获取数据也专门在这个类里去获取,这样可以让游戏逻辑与面板UI之间的耦合性不那么高
六、总结
①Toggle由挂在了Toggle脚本的父对象,以及框的背景和框的选中图组成。
②Toggle默认是多选框,可以通过把多个Toggle设置为一组把它们做成单选框。然后在代码中可以通过迭代器来获取当前激活的toggle,然后根据当前哪个是激活状态来对应处理不同的逻辑
像是这样
③Toggle中最重要用于获取的参数是isOn,我们常通过这个参数获取并处理相应的逻辑。在它监听的函数中,事件触发了会立刻把当前的isOn传递给这个监听的函数。所以这个函数需要有一个bool类型的参数来接收