MRが楽しい

MRやVRについて学習したことを書き残す

SharingWithUNETについてまとめる その2

本日は HoloToolKit の調査枠です。
SharingWithUNET のサンプルシーンを確認していきます。
・SharingWithUNETについてまとめる その1
 http://bluebirdofoz.hatenablog.com/entry/2018/01/03/225437

今回は UNETSharingStage オブジェクトにある NetworkManager について確認しました。
f:id:bluebirdofoz:20180104225533j:plain

Dont Destroy On Load

シーンが変更するときに NetworkManager オブジェクトが破棄されるかどうかを制御するフラグ
シーンをまたいで 1 つの NetworkManager で管理する場合は、true にする。
各シーンに NetworkManager を配置する場合は、false にする。

Run in Background

バックグラウンドでアプリを起動し続けているときに、プログラムが実行するかどうか
ローカルホストを使用してテスト実行をしている場合は、同じマシン上で複数のネットワークアプリケーションが実行できるように true にする。

Log Level

ネットワークに関するログをユーザーに表示するためのログレベル

Offline Scene

オフライン時に切り替えるシーン
設定すると NetworkManager でシーンの管理を行うことができる。
このシーンはクライアントが切断したときや、サーバーがシャットダウンしたときのような、セッションが完了したときにシーンを切り替える。

Online Scene

オンライン時に切り替えるシーン
設定すると NetworkManager でシーンの管理を行うことができる。
このシーンはクライアントが接続したときや、サーバーをリッスンしたときのような、セッションが開始したときにシーンを切り替える。

Network Info

ネットワークに関する情報を設定する。
f:id:bluebirdofoz:20180104225550j:plain
・Use WebSockets
 - これにより、NetworkServer は通常のトランスポート層接続の代わりに、WebSockets 接続に備えて待機する。
  WebGL クライアントをサーバーに接続可能にする。

・Network Address
 - 現在使用しているネットワークアドレス
  クライアントでは、接続しているサーバーのアドレスになる。サーバーでは、ローカルアドレスになる。

・Network Port
 - 現在使用しているネットワークのポート
  クライアントでは、接続しているサーバーのポートになる。サーバーでは、リッスンポートになる。

・Server Bind To IP
 - 特定の IP アドレスにバインドされているかどうかをサーバーに伝えるためのフラグ
  これが false の場合、特定の IP アドレス(IP_ANY)にバインドされない。

・Script CRC Check
 - サーバーとクライアント間でスクリプトCRC チェックを行うためのフラグ
  クライアントとサーバー間で、NetworkBehaviour のスクリプトが一致するのを保証するために CRC チェックを有効にする。
  これは、クライアントとサーバーで異なる Unity プロジェクトを利用している場合はあまり適切ではない。

・Max Delay
 - 接続のパケットを送信する前にかける最大ディレイ
  秒単位で設定される。デフォルトでは 0.01 秒、つまり、10 ミリ秒の遅延が発生する。
  0 に設定すると、HLAPI 接続のバッファリングを無効にする。

・Max Buffered Packets
 - 未調査。

・Packet Fragmentation
 - 未調査。

・MatchMaker Host URI
 - マッチメイキングサーバーのホスト名

・MatchMaker Port
 - マッチメイキングサーバーのポート

・Match Name
 - 現在のマッチ名
  現在進行中のマッチ名を示すテキスト文字列

・Maximum Match Size
 - 現在のマッチの最大プレイヤー数

Spawn Info

シーン内のゲームオブジェクトに関する情報を設定する。
f:id:bluebirdofoz:20180104225610j:plain
・Player Prefab
 - サーバー上でプレイヤーオブジェクトを作成するときに使用されるデフォルトのプレハブ
  プレイヤーオブジェクトは、サーバー上の AddPlayer() のデフォルト処理で作成される。
  この動作は OnServerAddPlayer を実装することでオーバーライドすることができる。

  SharingWithUNET では Assets/HoloToolkit/SharingWithUNET/Prefabs 配下にある Pleyer.prefab を Player Prefab として利用する。
f:id:bluebirdofoz:20180104225628j:plain

・Auto Create Player
 - 接続時や、シーンの変更時に自動でプレイヤーオブジェクトを作成するかどうかを制御するフラグ

・Player Spawn Method
 - NetworkManager で使用される、プレイヤーを生成する方法
  Random:プレイヤーの生成位置をランダムで決めます
  RoundRobin:指定の生成位置でプレイヤーを生成します。

・Registered Spawnable Prefabs
 - サーバー上でオブジェクトを生成するときに使用されるプレハブ
  本オブジェクトはSpawn()の処理で生成される。

  SharingWithUNET では Assets/HoloToolkit/SharingWithUNET/Prefabs 配下にある NetBullet.prefab をオブジェクトとして利用する。
f:id:bluebirdofoz:20180104225644j:plain

Advanced Configuration

チェックすると、送信データの設定などの拡張設定が行える。
f:id:bluebirdofoz:20180104225657j:plain

Use Network Simulator

チェックすると、レイテンシとパケットロスに関するシミュレーションを行える。
f:id:bluebirdofoz:20180104225706j:plain


自作アプリを組み込む際にはまず Spawn Info に関する部分に手を加える必要がありそうです。


参考ページ
unity3d.com
docs.unity3d.com
docs.unity3d.com