タイトルの通り、UnityのNGUIで、「UI Button」のOnClickイベントをスクリプトで登録する方法について
NGUIの便利なUIButtonですが、
スクリプトでOnClickのイベントを登録した事がなかったですが、
色々しらべたところやり方が分かったのでメモします!
下記がそのソース。
GameManager.cs
// イベントを登録したいボタンのオブジェクト
GameObject btnObj;
// NGUIのUI Button
UIButton btn = btnObj.GetComponent<UIButton>();
// イベントデリゲートを用意
EventDelegate btnEvent = new EventDelegate();
// このクラスのOnClickというメソッド
btnEvent.Set(this,"OnClick");
// 同じイベントが複数入ってしまうことを避けるため一旦イベントをクリア
btn.onClick.Clear();
// イベントを追加
btn.onClick.Add(btnEvent);
// NGUIのオブジェクトに子として追加
NGUITools.AddChild (nguiParentObj, btnObj);
以上です!
また、
btn.onClick.Clear();
は、Unityエディタ上で何回も実行などしていると、
イベントがどんどん増えてしまうので、念のためリセットします。
ここらへんは環境にあわせて適宜調整してください。
ググったんですが、日本語の情報がなかったので、
備忘録のためメモ。