本日はMicrosoftMeshの小ネタ枠です。
Meshの環境作成チュートリアルMesh 201を試した内容を記事にします。
今回はビジュアルスクリプトを使ってイベント参加者全員のHTMLコンテンツを読み込む手順です。
前回記事
以下の前回記事の続きです。
bluebirdofoz.hatenablog.com
ボタンのビジュアルスクリプトを編集する
3 - StaticContentWebslateオブジェクトをダブルクリックして[Scene]画面を移動します。
本オブジェクトにはLoadBunnton1とLoadButton2の2つのボタンが設定されており、本チュートリアルではLoadButton1を編集します。
LoadBunnton1オブジェクトを選択してScript Machineコンポーネントの[Edit Graph]ボタンをクリックします。
[Script Graph]画面が開き、本ボタンに設定されているビジュアルスクリプトが確認できます。
既にButtonオブジェクトの参照を持つGame Objectノードが配置されているので、出力ポートをクリックドラッグしてIs Selectedノードを追加します。
Is Selectedノードはイベント内の全ての参加者にボタン押下されたことを通知するノードになります。
追加したIs SelectedノードをOn State Changedノードの入力ポートに接続します。
これで押下状態が変化したタイミングのみ通知が行われるようになります。
HTMLページを読み込んで表示する
前回と同様にボタンを押下したタイミングでアセットデータをWebSlateに読み込む処理を追加します。
既にWebSlateコンポーネントの参照は設定されているのでGet Component In Childrenノードの出力ポートをクリックドラッグしてNodeメニューを表示し、Web Slate: Load HTM Content(Html Asset)ノードを選択して追加します。
追加したLoad HTM Contentノードのコンポーネントの入力ポートとGet Component In Childrenノードを接続します。
これでGet Component In Childrenノードで取得したWebSlateコンポーネントの参照をLoad HTM Contentノードに引き渡せます。
次にWebSlateにアセットデータを引き渡します。
Get VariableノードにはHTMLアセットの参照が設定されているので、本ノードをLoad HTM Contentノードに接続するだけです。
これでボタン押下時に用意されたHTMLアセットがWebSlateに読み込まれるようになりました。
動作テストを行う
シーンを再生して動作を確認します。
Load1ボタンをクリックすると、WebSlateオブジェクトに表示されるページが変化すれば成功です。
前回記事との動作の違い
前回記事で作成したボタンとの動作の違いはMeshEmulatorSetupオブジェクトの[Initial Screen Count]を2以上に設定してマルチプレイを試すと確認できます。
前回記事で作成したボタンはIs Selected Locallyノードを使用しているため、ボタンを押下した本人のみ通知が行われてWebSlateの読み込みが発生します。
他の参加者はボタン押下の通知を受け取らないため、WebSlateが変化しません。
一方で今回作成したボタンはIs Selectedノードを使用しているため、イベント内の参加者全員に通知が行われます。
このため、参加者全員の環境でWebSlateの読み込みが発生してWebSlateが変化します。
次回は3Dアセットを使用してWeb APIを呼び出しWebSlateを更新するサンプルを試します。
bluebirdofoz.hatenablog.com