【UE4】エディタ拡張(ボタン編)

投稿者: | 2016年11月28日

はじめに

こんばんは、プログラマーの笹目です!
UE4のエディタ拡張に関して少しずつ掲載しています。

今回はボタン編です。
前回はウィジェットの属性を変更する方法を見てみました。
今回はウィジェットにイベントを登録する方法を見てみます。

※使用したバージョンはUE4.13.2になります。
※言語環境は英語になります。


ボタンを追加

前回、ラベルを設定していた箇所を修正してボタンを追加してみます。

実行した結果、下図のようにボタンが追加されました。
ただ、このままではボタンを押しても何も起きません。
このボタンに押したときの処理を登録する必要があります。

slateui_button_0


イベント登録

ボタンを押したときの処理を登録していきます。
まずは、FTestWindowModuleクラスにボタンが押されたときに呼び出す関数を追加します。
ひとまずOutputLogパネルにログを出力する処理を書きます(戻り値に関しては後述)。

上記の関数をウィジェット側に設定します。
Buttonウィジェットの場合は、OnClickedイベントに関数を登録することによって、
ボタンが押されたときに関数が呼び出されるようになります。

実行してボタンを押してみると、OutputLogパネルにログが出力されていることが確認できます。
slateui_button_1


イベントについて

前回の記事で、属性の調べ方としてSLATE_ATTRIBUTEマクロを紹介しました。
実はイベントに関しても同様にマクロによって定義されています。
イベントの定義ではSLATE_EVENT( デリゲート名, イベント名 ) という形で定義されています。

イベント名は先程使用した「OnClicked」などです。
デリゲート名はそのイベントを登録するデリゲート型の名前です。

OnClickedイベントは以下のように定義されています。

ではFOnClickedとはどのようなデリゲートなのでしょうか。
FOnClickedは以下のように定義されています。

各デリゲートはマクロにより以下のように定義されています。
以下はデリゲート登録マクロの一部ですが、他のデリゲート登録マクロについても調べたい方は、
DelegateCombinations.hをご覧ください(公式ドキュメントはこちら)。

FOnClickedデリゲートはDECLARE_DELEGATE_RetValマクロで定義されています。
したがって、OnClickedイベントでは
戻り値型:FReply
引数:なし
の関数を登録することができるということになります。


ウィジェット追加時の調べ方

ウィジェットを追加した際には、そのウィジェットクラスのヘッダーファイルを見て、
前回紹介した、SLATE_ATTRIBUTEマクロ
今回紹介した、SLATE_EVENTマクロ
で定義を確認しみてると、
そのウィジェットで何ができるのか、どう設定するのかを確認できるかと思います。
是非参考にしてみてください!


 

 

【免責事項】
本サイトでの情報を利用することによる損害等に対し、株式会社ロジカルビートは一切の責任を負いません。