Buttonに設定したClickイベントのコールバック関数内で呼び出し元のButtonの情報を得る

この記事は2017年09月24日にqiitaに投稿した内容です。

環境

Unity2017.1.1p3

概要

インスペクター上でClick用のコールバック関数を設定した場合を想定しています 実際にButtonをClickした時に、何らかの処理中で一時押せないようにしたい場合等に、Button自体の参照が必要ですが、コールバック関数には渡ってきません 「EventSystem.current.currentSelectedGameObject」というのがありました 知りませんでした

プログラム

    public void OnButtonClick()
    {
        var button = EventSystem.current.currentSelectedGameObject.GetComponent<Button>();
        Debug.Log( "OnButtonClick:" + button.name );
    }