[英]handle ngui's button event programmatically in unity
我正在從Unity的UI轉移到NGUI。
以前,我可以使用以下腳本將偵聽器添加到button:
button.GetComponentInChildren<Button>().onClick.AddListener(() =>
{
//codes that could be triggered by click the button.
});
但是當更改為NGUI時,我不能通過以下方式使其起作用:
EventDelegate.Set(go.GetComponent<UIButton>().onClick, OnButtonClickActive);
private void OnButtonClickActive()
{
Debug.Log("active button clicked");
}
最后,通過使用以下腳本(使用UIEventListener
)向OnClick
添加自定義事件來完成這項工作:
UIEventListener.Get(go).onClick += OnButtonClickActive;
事件處理程序的定義如下:
private void OnButtonClickActive(GameObject go)
{
int level;
int.TryParse(go.GetComponentInChildren<UILabel>().text, out level);
Debug.Log(level + "active button clicked");
ApplicationModel.CurrentLevel = ApplicationModel.Levels[level - 1];
SceneManager.LoadScene("PlayScene");
}
請注意,將參數(關卡信息)與游戲對象中的UILable
組件一起傳遞可能有點愚蠢。 如果還有其他更優雅的方法,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.