「这是我参与2022首次更文挑战的第22天,活动详情查看:2022首次更文挑战」
Unity 之 UGUI Toggle组件介绍和简例
开关__控件是让用户打开或关闭某个选项的复选框。
复合组件Toggle的组成:
- Toggle:自身挂载Toggle组件,并且对有对子物体的引用。
- Background:就是个Image组件,用来当背景图片
- Checkmark: 也是个Image组件,用来作为选中和未选中的标识
- Label :是一个Text,用来描述这个Toggle组件的用处
个人理解:一个单选框,通过修改子物体的各个属性来实现开发者要实现的效果。
Toggle的属性面板:
| 属性名称 | 解释说明 |
|---|---|
| Interactable | 是否接收点击 |
| Transition | 确定控件以何种方式对用户操作进行可视化响应的属性。 |
| Navigation | 确定控件顺序的属性。 |
| Is On | 开关在开始时是否为打开状态 |
| Toggle Transition | 开关在其值发生变化时以图形方式作出的反应。提供的选项为 None_(即复选标记直接出现或消失)和 Fade_(即复选标记淡入或淡出)。 |
| Graphic | 用于复选标记的图像(那个对号√)。 |
| Group | 此开关所属的开关组。 |
| 事件 | :) |
| On Value Changed | 单击开关时调用的方法。该事件可将当前状态作为 bool 类型动态参数发送。 |
- "None":无过渡
- "ColorTint":颜色过渡 (系统默认,也最常用)
- "SpriteSwap":图片过渡
- "Animation":动画过渡
- ToggleGroup:也是组件,可被Toggle的Group属性添加,添加同一个ToggleGroup的Toggle之间只能单选。 ToggleGroup还有个属性“Allow Switch Off“”:允许关闭---- 这个属性勾选则添加ToggleGroup的所有Toggle可以都不选,不勾选则必须选一个
using UnityEngine;
using UnityEngine.UI;
public class ToggleDemo : MonoBehaviour {
Toggle toggle;
void GetAttributes() {
//是否可用
toggle.interactable = true;
//过渡模式
toggle.transition = Selectable.Transition.ColorTint;
//选中状态
toggle.isOn = true;
//指定组
toggle.group = GetComponent<ToggleGroup>();
//当其值发生变化时,切换的反应方式
toggle.toggleTransition = Toggle.ToggleTransition.Fade; //ToggleTransition.None
//当状态被改变时触发
toggle.onValueChanged.AddListener((bool v) => { OnChanged(v); });
}
void OnChanged(bool v)
{
//当前Toggle组件被触发了,todo sth...
}
}