UnityUI—Toggle

594 阅读3分钟

一、初始Toggle介绍

1.作用:单选框\

2.显示效果

image.png

3.Object结构

image.png

二、Toggle属性

[前部分同](UnityUI—Button - 掘金 (juejin.cn))

image.png

属性功能
Is On是否勾选
Toggle Transition在勾选与取消勾选时,√对应image的效果; None:无效果,直接出现/消失; Fade:渐隐渐显
Graphic√号对应的image。当然,可以换成任意喜欢的图片
Group对应的[ToggleGroup]

三、Toggle Group 简介

Toggle Group是可不见的功能性组件。属于同一个Toggle Group的多个Toggle,在同一时刻只有一个处于被勾选的状态(IsOn == true)。当点击组内某个单选框时,该组内其它会自动取消勾选,所以它就是用来快速实现多选一的。 另外:Toogle Group可以挂载到任何物体上,不必非是Canvas的子物体。

四、属性

image.png

Toggle Group只有一个属性:Allow Switch Off——是否允许全不选(若不勾选,则必有一个处于选中状态)

五、如何指定Toggle所在组

在Toggle中有一个属性:Group。将指定Toggle Group拖入,就表示此Toggle归入该Toggle Group。

image.png

六、事件On Value Changed

1、引言

每个可互动组件都有相应的互动事件,比如按钮的点击事件、单选框的值改变事件。此篇笔记用来记录关于事件绑定的相关内容。

2、如何绑定

我们可以在每个可互动组件的最下方添加该组件的事件函数,添加函数的方法是通过指定具体物体里的具体脚本中的具体public函数实现,这里以Toggle组件为例。

image.png

    public Toggle toggle;
    void Start()
    {
        toggle.onValueChanged.AddListener(ToggleTest);
    }
    private void ToggleTest(bool arg0)
    {
        Debug.Log(arg0);//值改变的时候都会执行[true/false]
    }

我们可以看到事件的名称On Value Changed以及参数Bool,通过点击+号,可以为此事件添加函数。但在添加函数前,必须先将脚本挂在某个游戏物体上。 这里我创建了一个名为Test的脚本,并为它添加了一个名为TestMethod并带有一个bool类型参数的public函数,然后将它挂在了Canvas上。

image.png

接着点击+号,再把Canvas拖入物体栏中,这样我们就指定了具体物体。

image.png

接着点击“No Function”来指定函数。需要注意的是指定函数时,函数列表分为了两大块:Dynamic 和Static Parameters,这是根据参数类型来确定的,若选择Dynamic 区域函数,则会自动传入Toggle组件isOn的值,这样就能根据单选框是否勾选来做出进一步处理。当然也可以选择static的函数,这根据实际需要决定。(Button的Onclick事件没有参数,所以只有static Parameters函数)

image.png

接着运行游戏,点击单选框就会看到Console面板输出信息:

image.png

3、补充

当添加事件并指定物体后,我们可以看到关于该指定物体上挂载的所有组件和脚本中的public函数,除此之外还有GameObject类的public函数。在GameObject类中有一个SetActive函数,该函数是用来启用和禁用游戏物体的,若在Toggle的OnValueChanged事件中绑定该函数,即可实现用Toggle开关该游戏物体,从而实现点击标签开关页面的功能