このステップでは、Character ブループリントと通信して、その中に保存された Pull、Shot、Score の値を取得し、HUD Widget ブループリント上に表示する値を更新します。Cast を使ってプレイヤーの Character ブループリントにアクセスして、Character ブループリントにある値を HUD のプロパティにバインドすることにより、これらの値が Character ブループリントで更新されると自動的に更新されるようになります。
ゲームの完了まであと少しです。最後に HUD の更新をしてみましょう。
作成した HUD Widget ブループリントを開きます。
HUD Widget ブループリントの [Graph] タブをクリックします。
グラフ内を 右クリック して、Event Construct ノードを追加します。
このノードは Event Begin Play に似ていて、 Widget ブループリントが構築されると呼び出されます。
Get Player Character ノードと CastTo FirstPersonCharacter ノードを追加します。
As First Person Character ピンを引き出して、 Promote to variable を選択し、新しいノード名を「MyCharacter」とします。
変数を選択し F2 を押すと、My Blueprint ウィンドウで関数名の変更ができます。
[Designer (デザイナ)] タブで、まず [Details (詳細)] パネルの横にある [Pulls]、次に [Text] の値をクリックしてから [Bind (バインド)] オプションをクリックします。
すると、バインド用に新規グラフが開きます。
Control を押した状態で MyCharacter 変数を Get Pulls へドラッグし、 Return Node の Return Value へ接続します。
To Text (Int) 変換ノードが自動的に作成されます。次に Pulls 値が正しく表示されるように設定します。
[Designer] タブで [Shots] の値をクリックし、[Details] パネルで [Bind] オプションをクリックし、以下のようにバインドします。
発射 1 回あたりの残弾数が正確に更新および表されます。
[Designer] タブで [Score] の値をクリックし、[Details] パネルで [Bind] オプションをクリックし、以下のようにバインドします。
最後に、岩にヒットするとプレイヤーに対して得点を正しく取得して表示します。
[Compile (コンパイル)] と [Save (保存)] をクリックし、ブループリントを閉じます。
メイン エディタ ビューで、 [Play (プレイ)] ボタンをクリックしてエディタで再生します。
これで簡単なシューティング ゲームが完成しました。岩をスポーンするには、前のセクションでイベントにバインドしたように F を押します。このガイドでは、イベントディスパッチャー、Cast ノードと Binding を使って 3 つの異なるブループリント間での通信方法を学びます。プロジェクトではレベルから Character ブループリントの通信方法に加えて、キャラクターから情報の HUD への渡し方を学びます。
プロジェクトの終了時には、サンプルを使ってプロジェクトを独自のものに変更してみます。このガイドのトピックスをカバーしている追加文書へのリンクも紹介しています。