Choose your operating system:
Windows
macOS
Linux
サーバー と クライアント の両側から見るために、 [Play] ダウンリストで、 [Number of Clients (クライアント数)] フィールドを 2 に設定します。
サンプル 2.2. も 2.3 も、木箱のサンプルが必要とする以下の 2 項目を処理できずに失敗しました。
-
相互作用時に瞬時にエフェクトを再生する
-
アクタにステートの時間経過に伴う変更を保存する
サンプル 2.4 では、効率的に問題を解決するために、 2.2 と 2.3 で用いた技術を組み合わせたハイブリッドな方法を試みます。Multicast 関数は特定の時間に関連のあるクライアントに対して瞬時にゴールド エフェクトの再生処理しながら、レプリケートされた boolean は木箱の蓋が開いているかどうかを保存します。木箱が一番最初に開かれる間に木箱がクライアントと関連がない場合、クライアントは木箱が関連をもったときに開かれた蓋のみ見ます。
ブループリントの詳細
BP_Relevancy_Replication_Combined ブループリントのイベント グラフで、OnChestTouch がオーバーライドされ、RepNotify 変数と Multicast レプリケート関数の組み合わせが使用され、それは下の方にあるコメント欄に表示されます。
Chest には 2 つのコンポーネントがあることを正しく表示します。 それは、1 つは瞬時のステート (ゴールド パーティクル)、もう 1 つは永続的なステート (開き中の lid) です。即時のイベント処理には Multicast、永続的なステートには RepNotify 変数を使って対応します。
以下は、変数 bChestOpened が更新されると呼び出される OnRep 関数です。
クリックしてフルサイズで表示
このサンプルでは提示した問題を解決し Multicast 関数と RepNotify 変数の正しい使用方法を紹介しました。ネットワーク化されたゲームで木箱を開くと、結果は期待通りになります。