其他分享
首页 > 其他分享> > Unity学习-toggle组件的使用

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、操作界面:

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

 6、运行界面

完美实现

7、致谢

 感谢博主的参考学习链接

标签:toggle,实现,image,Toggle,Value,Unity,组件,true
来源: https://blog.csdn.net/qq_34216631/article/details/121115618