簡體   English   中英

以編程方式統一處理ngui的按鈕事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM