Toggle
控件具有打开和关闭两种状态,多个Toggle
控件可以结合Toggle Group
形成单选组。
Toggle
控件是一个复合结构的游戏对象,默认创建的Toggle
控件对象结构如下:
显示效果如图:
其中,Toggle
为整个控件的父对象,上面包含控制脚本;Background
为开关背景,即图中的白色框;Checkmark
即上图中的勾,它会随着开关的开启和关闭状态显示或隐藏;Label
为后面的文本。
实际开发中,我们基本不会直接使用上面这个丑丑的对勾开关,我们重点关注Toggle
脚本和其上的参数,以此创建我们自己定制化的开关。
C#代码中,我们可以编写开关状态变化时的回调函数来监听开关的状态,下面是一个例子。
这里我们将Toggle
自身作为参数传入回调函数中,方便获取开关的状态。
ToggleDemo.cs
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class ToggleDemo : MonoBehaviour
{
public void HandleValueChanged(Toggle toggle)
{
Debug.Log(toggle.isOn);
}
}
单选按钮组能够实现一组开关中,同时只能有一个开关被开启,选择某开关时其余开关的开启状态会被清空。UGUI中创建单选按钮组十分简单,我们可以创建一个父对象,为其赋予Toggle Group
组件。
所有子对象的Toggle
组件上赋予Group字段,此时所有子对象的状态就会被按钮组维护起来。
不过不幸的是Toggle Group
组件似乎并没有提供获取当前开启的开关的方法,我们需要为所有的子开关添加回调函数并监听。