PUN Classic (v1)、PUN 2、Boltはメンテナンスモードとなっております。Unity2022についてはPUN 2でサポートいたしますが、新機能が追加されることはありません。お客様のPUNプロジェクトおよびBoltプロジェクトが停止することはなく、将来にわたってパフォーマンス性能が落ちることはありません。 今後の新しいプロジェクトについては、Photon FusionまたはQuantumへ切り替えていただくようよろしくお願いいたします。

コアオブジェクト

目次

Tick Engine設定

ScriptableObjectに保管されているグローバル設定を計画します。 これらのグローバル設定はWindowメニューにあります。

以下のように進んでください:
Window > Photon Unity Networking > Tick Engine Settings

Tick Engine設定

  • Enabel Tick Engine(Tick Engineを有効化する) - テスト目的のみ。 無効になっていると、NetMasterからのコールバックが全て停止し、結果としてSimpleのコード全てが無効となります。
  • Send When Solo(Soloの場合に送信する) - ルームに誰もいない場合でも所有しているオブジェクトからアップデートを送信できます。 デフォルトでは有効になっています。
  • Show GUI Headers(GUIヘッダを表示する) - Simpleコンポーネント用インスペクタの大きいグラフィックヘッダをトグルします。

トップに戻る
 

Time Manager

Fixed Timestamp

UnityのTime設定で使用されたレファレンスと同様です。 PhysX同期率を調整し、FixedUpdate率に影響を与えます。

トップに戻る
 

Ring Buffer

Send Every X Tick

SimpleSync uses FixedUpdate as its primary tick but can produce a network rate that is a subdivision of the fixed time rate. For example the default Unity physics fixedDeltaTime is .02 secs (50 ticks per sec). Setting Send Every X to 3 would result in a net rate of .06 (16.7 ticks per second) which is 1/3rd of the physics rate, resulting in 1/3rd the traffic.

トップに戻る
 

Buffer Correction

  • Manual - 手動で値を設定します。
  • Auto - fixedDeltaTime値とSendEveryX値に基づいて値を設定します。

トップに戻る
 

Frame Count

リングバッファに割り当てられているフレームの数。 The more frames, the greater the memory footprint but the longer the buffer. フレーム数が増えると、メモリフットプリントも大きくなりますが、長くなるほどバッファも増えます。 バッファとなる値は、合計で1-2秒を推奨しています。

トップに戻る
 

Target Buffer Size

消費時間(OnSnapshot)にバッファ上にあるフレームの理想の数です。 ゼロに近ければ近いほど、レイテンシも低くなります。ただし、低すぎるとバッファがアンダーランする傾向が高くなります。

トップに戻る
 

Buffer Min/Max

バッファのサイズ調整が必要とみなされる値です。

トップに戻る
 

Ticks Before Grow/Shrink

小生が行われる前にバッファがMin/Max値を超過するティック数です。 調整はフレームの繰り返し、または1ティックに対し複数のフレームを消費することで行われます。 これらの値が大きければ大きいほど、バッファ自身が積極的にサイズ修正を行おうとすることが少なくなります。 修正すると目に見えて遅延が発生するので、これらは回避することがベストです。

トップに戻る
 

Pack Object Settings

Code Generation

Auto Generate

有効にしていると、[PackObject]属性のクラスに対してアセンブリがスキャンされ、稼働するのに必要なsyncvarコードが生成されます。無効にすると既存のCodegenを所定の場所に残しまずが、新しいcodegenは再度有効にされるまで作成されません。

トップに戻る
 

Delete Bad Code

生成された拡張スクリプトでコンパイラエラーが発生した場合、そのスクリプトは自動的に削除されます。 このオプションは常に有効にしておいてください。

トップに戻る
 

Net Master & Net Master Late

Net Master

シーンに何も存在しない場合、ランタイムでシングルトンが2つ作成されます。 これらのシングルトンでSimple NetObjectsおよびPackObjectsが使用するタイミングコールバックが作り出され、また全てのアクティビティの開始地点となります。

トップに戻る
 

NetObject

PhotonViewを拡張子し、全てのSyncObjectsおよびPackObjects、また関連するコールバックを管理します。 このオブジェクトは、ゲームオブジェクトにある全てのISyncObjectコンポーネントの全コールバックインターフェースを、PackObject Attributeを持つコンポーネントと同様に収集して管理します。 NetObjectはNetMasterで生成したタイミングに反応し、コールバックを経由してそれらをSyncObjectsコンポーネントとPackObjectコンポーネントにパスします。 NetObjectはViewID、IsMine、PhotonViewのネットワークコールバックをいくつか使用するため、PhotonViewが必要です。

Net Object Component

トップに戻る
 

Skip When Empty: EXPERIMENTAL

NetObjectが何も送信しないようにします。心音1つさえも、です。 心音データを取り除くことで、ティックごとに3バイト節約されますが、副作用として望ましくない外挿を行うことがあります。 これは、シーンにたくさんのアイドルオブジェクトがあり、節約に値する寝起きの挙動のエッジケースのためにあります。 子同期オブジェクトにキーフレームレートを設定するようにしてください。キーフレームで強制的に送信されます。 キーフレームがゼロになっていると、キーフレームは1つも送信されません。 PUNではオブジェクトを初期化しない点にも留意ください。オブジェクトが動くまで、後から参加する人には正しい位置が見えません。

トップに戻る
 

Ignore Non Controller Updates

アップデートがこのネットエンティティの現在のOwner/Controllerから発信されている場合のみ、デシリアライズします。 このオプションを外したくなるようなユースケースはあまりありません。

トップに戻る
 

Resimumlate Late Arrivals

ネットオブジェクトアップデートの到着が遅すぎる場合、通常Simpleではフレームを外挿します。 これを有効化しておくと、ネットオブジェクトが遅延しているフレームへ巻き戻り、その値を適用して全ての後続フレームを最新状態に戻して再度シミュレーションすることができます。 CPUを集中的に使用しますが、ネットオブジェクトがネットワークの渋滞をよりうまく対処できるようになります。 無効にすると、遅延パケット対処用のカスタムコードが追加されない限りリライアブルなパケットでも正常に適用されなくなります。

トップに戻る
 

Event Flow

Event Flow

ドキュメントのトップへ戻る