其他分享
首页 > 其他分享> > Unity ugui——toggle选择框选中事件监听

Unity ugui——toggle选择框选中事件监听

作者:互联网

在Unity中会使用toggle进行答题选择等操作,有时候toggle 组非常多就可以通过监听事件来实现判断选中的内容。

单个toggle

using UnityEngine;  
using UnityEngine.UI;  
  
public class Test : MonoBehaviour  
{   
    private Toggle toggle;  
  
    void Awake()  
    {  
        toggle = toggleObj.GetComponent<Toggle>(); 
    }  
  
    void Start()  
    {  
     //button1.onClick.RemoveAllListeners();//清楚之前的监听,以免冲突
        //lambda表达式转换为委托类型  
        toggle.onValueChanged.AddListener((bool value) => OnToggleClick(toggle, value));  
  
    }  
  
    public void OnToggleClick(Toggle toggle, bool value)  
    {  
        Debug.Log("toggle change " + (value ? "On" : "Off"));  
    }  
}  

多个toggle

//找到所有的toggle 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
public class RemoverLevelInform : MonoBehaviour
{
 
    private Toggle[] toggles;
 
    // Start is called before the first frame update
    void Start()
    {
        //找到所有的toggles
       toggles=transform.GetComponentsInChildren<Toggle>();
        //给toggle添加事件
        for (int i = 0; i < toggles.Length; i++)
        {
            //这一步是必须记录的,用来区分那个toggle
            int K = i;
            toggles[K].onValueChanged.AddListener((bool value) => SetEveryToggle(value, K));
        }
    }
//
void SetEveryToggle(bool value, int j)
    {
        if (j == 0 && value)
        {
            Debug.Log("第一个toggle");
        }
        if (j == 1 && value)
        {
            Debug.Log("第二个toggle");
        }
        if (j == 2 && value)
        {
            Debug.Log("第三个toggle");
        }
    }
}

 

标签:UnityEngine,toggles,void,toggle,value,Unity,using,框选
来源: https://blog.csdn.net/liang_704959721/article/details/112426097