ブループリント アクタ通信 の イベント ディスパッチャー の例では、ブループリントと C++ の両方の言語を機能を重視した方法で示されています。このページはブループリント スクリプトの補足説明と考えてください。
1 つ以上のイベントを イベントディスパッチャー へ結合すると、イベントディスパッチャーの呼び出し時に、結合されたこれらのイベントを一度に発行することができます。これらのイベントは、Blueprint クラス内で結合することができます。ただし、イベント ディスパッチャーにより Level ブループリント内でもイベントの発行が可能になります。
イベントディスパッチャーの作成
イベントディスパッチャーは、ブループリント エディタの ブループリント エディタ の My Blueprint タブで作成されます。
新規にイベントディスパッチャーを作成する方法:
-
MyBlueprint の Event Dispatcher カテゴリ: の ボタンをクリックします。
-
[My Blueprint] タブのリストの最後に表示される名前欄にイベントディスパッチャー名を入力します。
設定プロパティ
[My Blueprint] パネルのイベントディスパッチャーを選択すると、 [Details (詳細)] パネルでプロパティの編集が可能になります。自分のイベントディスパッチャーにツールチップとカテゴリの設定、および入力を追加することができます。
イベントディスパッチャーに入力を追加すると、イベントディスパッチャーに結合している各イベントに変数を送ることができるようになります。そして、データフローが Blueprint クラス内だけでなく、 Blueprint クラスと Level ブループリント間でも可能になります。
イベント ディスパッチャーに入力を追加するプロセスは、関数、カスタム イベント、マクロに入出力を追加するワークフローと似ています。別のイベントに同じ入力を使用したい場合、 [Copy Signature from (からシグネチャをコピー)] ドロップダウンを使ってイベントを表示できます。 自分で入力をイベントディスパッチャーへ追加するには、以下の手順に従います。
- [Details (詳細)] ペインの [Inputs (入力)] セクションの[New (新規)] をクリックします。
- 新規入力に名前をつけて、ドロップダウン メニューでタイプを設定します。この例では、MyStringParam という名前の String 入力パラメータがあります。
- パラメータに対する入力を拡張することで、デフォルト値を設定し、参照によりパラメータを渡すかどうかを表示することもできます。
イベント ディスパッチャーの使用
イベント ディスパッチャーを作成したら、イベント ノード、バインド ノード、アンバインド ノードを追加してそれに接続することができます。イベント ディスパッチャー グラフを開くために [My Blueprint] タブのイベント ディスパッチャー入力を ダブルクリック することができますが、 グラフはロックされているので、イベント ディスパッチャーを直接修正することはできません。結合、解除、割り当てメソッドで、イベント ディスパッチャーをイベント リストへ追加できるようになり、 call メソッドでイベントリストに格納されたすべてのイベントをアクティベートします。
Event のバインド ノードとアンバインド ノードは、Blueprint クラスへも Level ブループリントへも追加することができるノードです。Event ノードを除いて、各ノードには Target 入力ピンがあります。
- Blueprint クラスでは、このピンは自動的に Self へ設定されます。つまり、イベントリストはクラスに対して変更され、クラスのインスタンスもすべて変更されることになります。
- Level ブループリントでは、このピンはレベルのクラスのインスタンスへの参照に接続されていなければなりません。つまり、イベントリストはクラスの特定のインスタンスに対してのみ変更されます。 Actor リファレンスが必要な場合には、Level ブループリント に作成方法が説明されています。