2019.12.18はじめにこんばんは、プログラマーの笹目です!UE4のエディタ拡張に関して少しずつ掲載しています。前回はウィジェットの属性を変更する方法を見てみました。今回はウィジェットにイベントを登録する方法を見てみます。※使用したバージョンはUE4.13.2になります。※言語環境は英語になります。前回、ラベルを設定していた箇所を修正してボタンを追加してみます。];実行した結果、下図のようにボタンが追加されました。このままではボタンを押しても何も起きません。このボタンに押したときの処理を登録する必要があります。イベント登録ボタンを押したときの処理を登録していきます。FTestWindowModuleクラスにボタンが押されたときに呼び出す関数を追加します。OutputLogパネルにログを出力する処理を書きます(戻り値に関しては後述)。FReply::Handled();}上記の関数をウィジェット側に設定します。Buttonウィジェットの場合は、OnClickedイベントに関数を登録することによって、ボタンが押されたときに関数が呼び出されるようになります。)実行してボタンを押してみると、OutputLogパネルにログが出力されていることが確認できます。イベントについて前回の記事で、属性の調べ方としてSLATE_ATTRIBUTEマクロを紹介しました。実はイベントに関しても同様にマクロによって定義されています。いう形で定義されています。イベント名は先程使用した「OnClicked」などです。デリゲート名はそのイベントを登録するデリゲート型の名前です。OnClickedイベントは以下のように定義されています。)ではFOnClickedとはどのようなデリゲートなのでしょうか。FOnClickedは以下のように定義されています。)各デリゲートはマクロにより以下のように定義されています。以下はデリゲート登録マクロの一部ですが、他のデリゲート登録マクロについても調べたい方は、DelegateCombinations.hをご覧ください(公式ドキュメントはこちら)。)FOnClickedデリゲートはDECLARE_DELEGATE_RetValマクロで定義されています。したがって、OnClickedイベントでは戻り値型:FReply引数:なしの関数を登録することができるということになります。前回紹介した、SLATE_ATTRIBUTEマクロ今回紹介した、SLATE_EVENTマクロで定義を確認しみてると、そのウィジェットで何ができるのか、どう設定するのかを確認できるかと思います。本サイトでの情報を利用することによる損害等に対し、株式会社ロジカルビートは一切の責任を負いません。