This document is about: FUSION 2
SWITCH TO

FusionStats

概要

Fusion Statsは、ネットワークテレメトリーを監視するためのUIコンポーネントで構成されています。FusionStatsコンポーネントは、テレメトリーのUI要素を生成・初期化・制御する主要なコンポーネントです。

Fusion Statsは、標準的なUnityEngine.UIコンポーネントを使用しているため、スクリーンオーバーレイで表示したり、3D空間のオブジェクトにアタッチして表示したりすることが可能です。

基本的な使用方法

Fusion Statsをシーンに追加するには、

  • Unity Editorのメニューから、Fusion > GameObject > Add Fusion Statsを実行する
  • ヒエラルキーか、ヒエラルキー上のGameObjectを右クリックして、Fusion > Add Fusion Statsを選択する
add fusion stats
ゲームオブジェクトにFusion Statsを追加する
  • ゲームオブジェクトが選択されている場合:FusionStatsのデフォルトはStatsCanvasType.GameObjectとなり、3D空間上の選択したオブジェクトにアタッチされて表示されます
  • ゲームオブジェクトが選択されていない場合:FusionStatsのデフォルトはStatsCanvasType.Overlayとなり、スクリーン上に表示されます

このメニューは、自動的にFusionStatsBillboardコンポーネントをオブジェクトに追加します。FusionStats.CanvasTypeGameObjectに設定されている場合、FusionStatsBillboardによって、ゲームオブジェクトが自動的にカメラの方を向くようになります。

ランタイムの機能

シミュレーションの実行中は、いくつかの追加機能が利用可能です。ここでは、実行時に使用できるFusionGraphの様々な「隠れた」機能を紹介します。

ビューオプション

FusionGraphのタイトルをクリックすると、ビューオプションのドロップダウンリストが表示されます。

selecting alternate graph methods.
グラフ表示方法の選択

平均オプション

実行時にFusionGraphの数値表示をクリックすると、現在のデータソースで利用可能な平均オプションが切り替わります。

  • 秒あたりの平均
  • ティックごとの平均
  • サンプルあたりの平均
selecting alternate averaging options.
平均オプションの選択

ハイライト

パネルの一番上にあるNetworkRunnerの名前をクリックすると、ヒエラルキー上のFusionStatsコンポーネントがハイライトされます。ゲームオブジェクトが選択されていない場合、インスペクター上にFusionStatsコンポーネントが表示されます。

pinging fusionstats game object.
FusionStatsのハイライト

FusionStatsコンポーネント

FusionStatsは、Fusion Statsの主要なコンポーネントになります。子CanvasとUIコンポーネントを生成し、実行時に、それらコンポーネントとNetworkRunnerNetworkObjectのデータソースとの接続を管理します。

Redraw Interval

UIの更新頻度をこの値以下に制限します。値が大きいほど、パフォーマンスが向上します。

Layout セクション

Fusion StatsのCanvasの全体的なレイアウトに影響を与える項目です。

Canvas Type

Canvasには、2つのモードがあります。

  • GameObject:キャンバスを3D空間で表示
  • Overlay:キャンバスをスクリーン空間で表示

GameObject Rect / Overlay Rect

矩形は編集可能で、UI.Canvas要素をどこに表示するかを定義できます。任意の画面端や隅に、Canvasのグラフを表示することができます。

CanvasTypeGameObjectの場合は、GameObjectRectが使用され、アタッチされたオブジェクトの中心からのオフセットを設定することができます。

CanvasTypeOverlayの場合は、OverlayRectが使用され、スクリーンのどこに表示するかを指定できます。FusionGraphコンポーネントは、矩形に合わせて拡大縮小されます。

Canvas領域をクリック/ドラッグすると、インスペクター上で矩形を編集できます。

角をドラッグしたい場合は、かならずドロワーを展開してください。

collapsed gameobject rect
縮小された矩形ドロワー(右上隅に調整)
gameobject rect
展開された矩形ドロワー(右上隅に調整)
gameobject stats
Canvasの右上隅に調整されたFusion Stats

Fusion Graphs Layout セクション

FusionGraphコンポーネント(Fusion StatsのCanvasの下位要素)のレイアウトに影響を与える項目です。

Default Layout

Autoに設定された子要素のFusionGraphコンポーネントは、このレイアウト設定を使用して、各グラフの幅/高さに基づいたレイアウトが選択されます。

No Text Overlap

これを設定すると、グラフのUIにはFusion Graphs Layoutオプションが使用されず、テキストがグラフ(縦のバー)にオーバーラップするようになります。テキストが文字化けするケースで、この設定を使用してください。これは一般的に、VRのような、Canvasがカメラの方を向くようにビルボード化されていないケースで発生します。

Graph Column Count

グラフのカラム数は、FusionStats.GraphColumnCountから手動で設定できます。FusionStats.GraphColumnCountを0に設定すると、FusionStats.GraphMaxWidthの値が使用され、Canvasの幅がこの値を超えると自動的に新しいカラムが作成されます。

Graph Max Width

FusionGraph要素の最大幅です。この幅を超えると、必要に応じて新しいカラムが追加されます。

Network Object Stats セクション

ルートのNetworkObjectコンポーネントに関するオプションです。 NetworkObjectのゲームオブジェクトに、FusionStatsが追加されている場合のみ有効になります。

Enable Object Stats

ルートのNetworkObjectコンポーネントに対するUI表示とテレメトリー処理を有効にします。

Object Title Height

ゲームオブジェクト名のラベルの高さです。

Object Ids Height

ネットワークオブジェクトのIDと、プレイヤーの権限を表示する部分の高さです。

Object Meters Height

横のメーターバー部分の高さです。

Data セクション

どのデータソースを使用し、どのテレメトリーを表示するかのオプションです。

Runner

全てのテレメトリーデータには、関連するNetworkRunnerが必要です。これは、NetworkRunnerが起動した時に、自動的に検出されます。

Connect To

マルチピアモードでは、複数のNetworkRunnerが存在する可能性があるため、どのNetworkRunnerを検出するかを制御したい場合があります。SimulationModesフラグとFusionStats.EnforceSingleを併用すると、複数のピアが動作していても、FusionStatsのインスタンスを1つだけに制限できます。

Included Stats

各テレメトリー項目は、FusionGraphの表示に含めたり除外したりすることができます。利用可能なテレメトリーデータは、以下の3つのグループに分けられます。

  • Net Stats:ラウンドトリップタイム(RTT)や送受信データ量などの、ネットワークトランスポートレイヤーの統計
  • Sim Stats:再シミュレーション数・スナップショットサイズ・補間/予測の設定などの、SimulationNetworkRunnerの統計
  • Obj Stats:RPC数・ネットワークプロパティの帯域幅使用量などの、NetworkObject関連の統計

Life-Cycle セクション

FusionStatsのゲームオブジェクトインスタンスの生成/破棄に影響するオプションです。

Auto Destroy

これを設定すると、関連するNetworkRunnerが切断された時に、FusionStatsのゲームオブジェクトは破棄されます。

Enforce Single

これを設定すると、同じFusionStats.GUIDを持つNetworkStatsのゲームオブジェクトインスタンスを破棄します。マルチピアモードにおいて、FusionStatsオブジェクトのインスタンスを、ピアごとではなく、1つだけに制限したい場合に便利です。どのピアを監視するかを制御するために、FusionStats.ConnectToと併用してください。

GUID

マルチピアモードにおいて、FusionStats.EnforceSingleと併用して、同じFusionStatsオブジェクトの複数のインスタンスを識別します。

Back to top