2017-06-06 3 views
0

私はUnityのUIからNGUIに移行しています。最後に、私はこれを作ったnguiのボタンイベントをプログラムで統一して扱います。

EventDelegate.Set(go.GetComponent<UIButton>().onClick, OnButtonClickActive); 

private void OnButtonClickActive() 
{ 
    Debug.Log("active button clicked"); 
} 
+0

コンパイル時のエラーは何ですか? – kennyzx

+0

@kennyzxエラーは表示されませんでした。ただ働かない。 – armnotstrong

答えて

1

:によって

button.GetComponentInChildren<Button>().onClick.AddListener(() => 
{ 
    //codes that could be triggered by click the button. 
}); 
をしかしNGUIに変更したときに、私はそれを動作させることはできません。

以前、私は、スクリプトを次のようにボタンにリスナーを追加することができます次のスクリプト(UIEventListenerを使用)を使用してOnClickにカスタムイベントを追加して作業してください:

UIEventListener.Get(go).onClick += OnButtonClickActive; 

そして、次のようにイベントハンドラが定義されています。ゲームオブジェクトでUILableコンポーネントとパラメータ(レベル情報)を渡すために少し愚かなことかもしれない、ということ

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"); 
    } 

注意を。もう少しエレガントな方法がある場合は、私に知らせてください。

関連する問題