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