Toggle按钮监听事件的绑定方法使用的是Toggle.onValueChanged.AddListener();
使用Toggle按钮时出现 点击后运行两次函数的情况 很恶心 困扰了两天 今天总算弄明白了;
这和Toggle组件的isOn值有关
toggle绑定事件后会实行该事件两次,一次是在isOn=true的时候即点击Toggle按钮时执行,第二次是在isOn=false就是点击Toggle Group下其他Toggle按钮时执行。
所以在你的绑定事件执行前,需要对isOn进行一次判断:
代码如下:
toggleGroup.transform.Find("Toggle" + 1).GetComponent<Toggle>().onValueChanged.AddListener(delegate (bool isOn) {
print("isOn:" + isOn + "+111");
if (isOn)
{
print("toggle++++111++++点击");
}
if (!isOn)
{
print("toggle++++111++++点击其他");
}
});
toggleGroup.transform.Find("Toggle" + 2).GetComponent<Toggle>().onValueChanged.AddListener(delegate (bool isOn) {
print("isOn:" + isOn + "+222");
if (isOn)
{
print("toggle++++222++++点击");
}
if (!isOn)
{
print("toggle++++222++++点击其他");
}
});
toggleGroup.transform.Find("Toggle" + 3).GetComponent<Toggle>().onValueChanged.AddListener(delegate (bool isOn) {
print("isOn:" + isOn + "+333");
if (isOn)
{
print("toggle++++333++++点击");
}
if (!isOn)
{
print("toggle++++333++++点击其他");
}
});
看不懂的可以运行一次上面的代码 可能理解的更直接!
同时大家可以活用isOn=false的情况!