在本文,你將學到如何將UGUI Toggle的onValueChanged事件進行統(tǒng)一管理黎泣。
代碼塊:
using UnityEngine.EventSystems;
public class UIManager : MonoBehaviour {
public Toggle[] Toggles; //滑塊集合
private void Start()
{
foreach (var item in Toggles)
{
item.onValueChanged.AddListener( ifselect => { if (ifselect) OnToggleValueChanged(item); });
}
}
// 同一管理Toggle互墓,Toggle發(fā)生改變執(zhí)行相應的事件
private void OnToggleValueChanged(Toggle item)
{
switch (item.name)
{
case "01":
Debug.Log("第一:"+item.name );
break;
case "02":
Debug.Log("第二:" + item.name );
break;
}
}
}
Debug數(shù)據:
小技巧
有人問 Toggle 的事件在 Inspector 上怎么添加必尼,其實,也挺簡單的:
方案一:
在希望接受這個事件的腳本里寫一個帶 bool 參數(shù)的方法篡撵,然后就能在這找到他了
代碼:
public void TestFunction(bool value) { }
效果:
注意:
上圖不是被一個大大的空隙隔開了么判莉,然后在下面也能看到同一個方法名的選項,不要選他育谬,筆者估計大家很多困惑來自選了它吧~
方案二:
直接指向一個 bool 類型的 屬性也是可以的券盅,形如:
代碼:
public bool TestAttribute{get;set;}
效果:
這也不意外畢竟 屬性 實質上是一組 getter setter 方法的組合。
標簽:Unity3D膛檀、UGUI锰镀、Toggle、EventSystem咖刃、OnToggleValueChanged泳炉、AddListener