今天做项目的时候偶然用到这个toggle,卡我半天。
using UnityEngine.EventSystems;
public class UIManager : MonoBehaviour {
public Toggle[] Toggles; //滑块集合
private void Start()
{
//网上(https://www.jianshu.com/p/f047342993d0)的是这样添加监听的,
//我试过了,打印出来的item.name 永远是滑块集合的最后一个
//foreach (var item in Toggles)
// {
// item.onValueChanged.AddListener( ifselect => { if (ifselect)
// OnToggleValueChanged(item); });
// }
//这是我修改之后的,这样就可以对应的打印出toggle的name,(#‵′)靠
foreach (var item in Toggles)
{
addListener(item);
}
}
private void addListener(Toggle item )
{
item.onValueChanged.AddListener( ifselect => { if (ifselect)
OnToggleValueChanged(item); });
}
// 同一管理Toggle,Toggle发生改变执行相应的事件
private void OnToggleValueChanged(Toggle item)
{
Debug.Log("--------:"+item.name );
}
}