Unity学习-toggle组件的使用

1、功能描述

        通过Toggle实现类似按钮的操作,举例实现三个的点击功能,3个按钮可以实现的是各自之间点击对应实现相应的功能,不能BT1点击之后再次点击BT2,此时我们不能控制BT2进行功能实现时关闭BT1正在实现的功能。这是一个弊端,可能会导致同时运行不同功能,很混乱,用Toggle组件就可以避免这个问题了,同一个Canvas下的toggle可以实现点击其中一个关闭其他Toggle。

2、基本使用步骤

①一个空物体GameObject名字叫做TController

②设置3个Toggle在同一个Canvas中(创建UI下的Toggle组件,这里创建Toggle时会自动创建一个父物体Canvas)

③将Canvas设置为TController的子物体

④在TController上面添加Toggle Group组件,挂上控制函数

⑤每一个Toggle中都设置Group为TController。

3、举例

三个Toggle组件实现Image变颜色

4、实现代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class NewBehaviourScript : MonoBehaviour
{
    //声明三个toggle组件
    [SerializeField] private Toggle m_toggle1;
    [SerializeField] private Toggle m_toggle2;
    [SerializeField] private Toggle m_toggle3;
    //控制的图像组件
    [SerializeField] private Image m_image;

   
    void Start()
    {
       //给每个Toggle添加上对应的实现函数
        m_toggle1.onValueChanged.AddListener(DoChangeImageColor1);
        m_toggle2.onValueChanged.AddListener(DoChangeImageColor2);
        m_toggle3.onValueChanged.AddListener(DoChangeImageColor3);

    }

    //具体实现函数的定义
    public void DoChangeImageColor1(bool Value)
    {
        if (Value == true)
        {
           
            m_image.color = Color.black;
            m_image.gameObject.SetActive(true);

        }
    }
    public void DoChangeImageColor2(bool Value)
    {
        if (Value == true)
        {
            m_image.color = Color.white;
            m_image.gameObject.SetActive(true);

        }
    }
    public void DoChangeImageColor3(bool Value)
    {
        if (Value == true)
        {
            m_image.color = Color.red;
            m_image.gameObject.SetActive(true);

        }
    }

}

5、操作界面:

Unity学习-toggle组件的使用

Unity学习-toggle组件的使用

此处的is on关闭,不然开始是多选的状态

 6、运行界面

完美实现

Unity学习-toggle组件的使用

7、致谢

 感谢博主的参考学习链接

上一篇:JQuery的事件绑定


下一篇:修改UIView的默认Layer后,修改View的值会动态修改Layer的值