This document is about: FUSION 2-SHARED
SWITCH TO

Network Runner

概要

NetworkRunnerはFusionの主要なコンポーネントで、一つのネットワーク上のピアを表します。メッセージング、マッチメイキング、ネットワークへの接続、オブジェクトのスポーン、シミュレーション、状態のレプリケーションは、全てこのコンポーネントによって管理されます。

使用方法

作成

NetworkRunnerのゲームオブジェクトの作成方法は、以下の三つです。

  • 実行時にプレハブからインスタンス化する
  • シーンオブジェクトとしてロードする
  • 実行時に動的に作成する(ゲームオブジェクトにNetworkRunnerコンポーネントを追加する)

起動と接続

NetworkRunnerを作成すると、マッチメイキングを行ったり、特定のルームの作成と参加が可能になります。

ルームの作成と参加

NetworkRunnerStartGame()を呼び出すと、ピアが作成されて、StartGameArgs引数で指定したルームの作成または参加を行います。ただし、シングルプレイヤーモードでは、サーバー接続やルーム作成は行われません。

重要: NetworkRunnerは再利用できません。一度セッションから切断するか、接続に失敗したら、そのNetworkRunnerは破棄してください。新しいセッションを開始する場合は、新しいNetworkRunnerインスタンスを作成してください。

関連コンポーネント

NetworkRunnerは起動時に、子オブジェクトの全てのSimulationBehaviourコンポーネントを検出して登録します。登録されたコンポーネントは、FixedUpdateNetwork()Render()コールバックを受け取れるようになります。

また、NetworkRunnerは子オブジェクトの全てのINetworkRunnerCallbacksインターフェースを実装しているコンポーネントを検出して登録し、各コールバックを受け取れるようにします。

Fusionの組み込みコンポーネント

NetworkRunnerのゲームオブジェクトに追加してNetworkRunnerの機能を拡張するコンポーネントがいくつか存在します。

  • RunnerAOIGizmos:これを追加すると、関心領域ギズモが有効になります。

SimulationBehaviour

SimulationBehaviourを継承するかINetworkRunnerCallbacksを実装した(または両方を満たした)コンポーネントをNetworkRunnerのゲームオブジェクトに追加すると、独自にNetworkRunner用のコンポーネントを作成することができます。

これらのコンポーネントはNetworkRunner.StartGame()呼び出し時に自動的にNetworkRunnerによって検出され、関連するコールバックが呼び出されるようになります。

INetworkRunnerCallbacks

NetworkRunnerは起動時に、子オブジェクトの全てのINetworkRunnerCallbacksを実装しているコンポーネントを検出して登録します。INetworkRunnerCallbacks API Referenceを参照してください。

注意: 実行順序によって、一部のコールバックが呼び出されない可能性があります。例えば、OnPlayerJoined()は既に(自身が参加する以前に)参加しているプレイヤーに対しては呼び出されません。

NetworkRunner in the Hierarchy of Core Objects
NetworkRunnerは、接続・マッチメイキング・メッセージング・イベントコールバック・スナップショット履歴・ネットワークオブジェクトの同期のすべてを管理します。

ネットワーク接続

ピアの接続(マッチメイキングサーバー、ルームサーバー、ゲームサーバー)とトランスポートの処理はNetworkRunnerでラップされています。

ティックの管理

NetworkRunnerはティックベースシミュレーションと再シミュレーションを実行する責務を持ちます。UnityのUpdateごとに、NetworkRunnerは前回のシミュレーションからの経過時間に基づいて、何ティックのシミュレーションを進める必要があるかを決定します。

あるティックのシミュレーションを実行する時、Fusionは全てのFixedUpdateNetwork()コールバックと、シミュレーションに関連する様々なイベントコールバックを呼び出します。

Back to top