Toggle控件
怎么创建一个Toggle控件?
Hierarchy面板
点击Create,或者右键空白处
UI–>Toggle
什么是Toggle控件?
第一步,先让我们看看他长得什么样子!
噢,原来是这个样子 让我想到了那些年填得问卷中的多选
让我们再看一下他的构造
由此看来,Toggle是一个复合控件
Toggle是逻辑控制,其中有挂有Rect Transform组件和Toggle组件,我们在后边再提Toggle组件
Background就是这个控件的底图,让我们改变一下底图先看看看看效果
就是这样的效果喽!
Background里边还有一个Checkmark,他的表现就是那个对勾喽
给他换个图片试试看
这里是选中的效果,点击它一下看看会有什么效果
Checkmark是切换选中和未选中的效果,看下一个Label
Label是文字显示,下面继续看效果
Toggle控件的功能有哪些?
通过上面的简单演示,我们知道他可以做单选的功能
那么多选呢?肯定可以的
怎么实现呢?我们可以通过分组来实现:
1.父节点上挂Toggle Group组件,
2.与他同级的Toggle控件修改Toggle组件->Group->ToggleGroup
还有一个特别重要的功能:标签页,实现操作操作如下:
1.手动拉伸Background
2.修改Checkmark的Source Image
3.去掉Raycast Target(勾选会挡到UI事件)
Toggle组件的主要参数有哪些?
Transform:一般为None
Is On:默认选/不选
通过脚本与Toggle控件联系?
响应点击事件,Is On发生变化时,调用此函数
private Toggle toggleHero;
private Toggle toggleSkin;
private ToggleGroup group;
//以下在Awake()里
group=GetComponent<ToggleGroup>();
group=gameObject.AddComponent<ToggleGroup>();//添加一个组
toggleHero = transform.Find("ToggleHero").GetComponent<Toggle>();
toggleSkin = transform.Find("ToggleSkin").GetComponent<Toggle>();
//ToggleHero ToggleSkin为GameObject的name
toggleHero.group = group;
toggleSkin.group = group;//为两个Toggle添加到同一组
toggleHero.OnValueChanged.AddListener(OnHeroClick);
toggleSkin.OnValueChanged.AddListener(OnSkinClick);//绑定事件
toggleHero.isOn = true;
toggleSkin.isOn = false;//设置初始值
private void OnHeroClick(bool arg0){}
private void OnSkinClick(bool arg0){}//参数表示是否选中