本日は HoloToolKit の調査枠です。
SharingWithUNET のサンプルシーンを確認していきます。
・SharingWithUNETについてまとめる その1
http://bluebirdofoz.hatenablog.com/entry/2018/01/03/225437
今回は UNETSharingStage オブジェクトにある NetworkManager について確認しました。
Dont Destroy On Load
シーンが変更するときに NetworkManager オブジェクトが破棄されるかどうかを制御するフラグ
シーンをまたいで 1 つの NetworkManager で管理する場合は、true にする。
各シーンに NetworkManager を配置する場合は、false にする。
Run in Background
バックグラウンドでアプリを起動し続けているときに、プログラムが実行するかどうか
ローカルホストを使用してテスト実行をしている場合は、同じマシン上で複数のネットワークアプリケーションが実行できるように true にする。
Log Level
ネットワークに関するログをユーザーに表示するためのログレベル
Offline Scene
オフライン時に切り替えるシーン
設定すると NetworkManager でシーンの管理を行うことができる。
このシーンはクライアントが切断したときや、サーバーがシャットダウンしたときのような、セッションが完了したときにシーンを切り替える。
Online Scene
オンライン時に切り替えるシーン
設定すると NetworkManager でシーンの管理を行うことができる。
このシーンはクライアントが接続したときや、サーバーをリッスンしたときのような、セッションが開始したときにシーンを切り替える。
Network Info
ネットワークに関する情報を設定する。
・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
シーン内のゲームオブジェクトに関する情報を設定する。
・Player Prefab
- サーバー上でプレイヤーオブジェクトを作成するときに使用されるデフォルトのプレハブ
プレイヤーオブジェクトは、サーバー上の AddPlayer() のデフォルト処理で作成される。
この動作は OnServerAddPlayer を実装することでオーバーライドすることができる。
SharingWithUNET では Assets/HoloToolkit/SharingWithUNET/Prefabs 配下にある Pleyer.prefab を Player Prefab として利用する。
・Auto Create Player
- 接続時や、シーンの変更時に自動でプレイヤーオブジェクトを作成するかどうかを制御するフラグ
・Player Spawn Method
- NetworkManager で使用される、プレイヤーを生成する方法
Random:プレイヤーの生成位置をランダムで決めます
RoundRobin:指定の生成位置でプレイヤーを生成します。
・Registered Spawnable Prefabs
- サーバー上でオブジェクトを生成するときに使用されるプレハブ
本オブジェクトはSpawn()の処理で生成される。
SharingWithUNET では Assets/HoloToolkit/SharingWithUNET/Prefabs 配下にある NetBullet.prefab をオブジェクトとして利用する。
Advanced Configuration
チェックすると、送信データの設定などの拡張設定が行える。
Use Network Simulator
チェックすると、レイテンシとパケットロスに関するシミュレーションを行える。
自作アプリを組み込む際にはまず Spawn Info に関する部分に手を加える必要がありそうです。