シェアリング関係を開発していると、サーバのアドレスが変わるたびに設定を変えるのが面倒です。アプリを起動させてからIPアドレスを入力できればいいのですが…
そんなことを可能にしてくれるのがMRTK-Examplesに含まれているSharingTestシーン中のManualIpConfigUtilityです。
これを自分のアプリに導入する方法を説明します。
まず、オブジェクトをプレハブ化します。
エクスプローラで、自分のアプリにコピー&ペースとします。
プレハブをヒエラルキービューにドラッグします。
CanvasコンポーネントのRender Modeを「Screen Space - Overlay」に変更します。
Render Modeを「World Space」に戻します。
位置や大きさなどを元の値に戻します。
これでできあがりです。
なお、ときどき接続できなくなります。そのときはHoloLensを再起動すると直ったりリビルドしたりすると直ったり…よくわかりません。もう少し調べてみます。
2018年5月9日加筆
サーバIP手動設定パネルを、サーバに接続したら非表示にし、サーバから切断されたら表示するようにしたいですよね。そのようなスクリプトを書きました:
// ManualIpConfigUtilityManager.cs using HoloToolkit.Sharing; using UnityEngine; /// <summary> /// サーバIP手動設定パネルを、サーバに接続したら非表示にし、サーバから切断されたら表示する /// </summary> public class ManualIpConfigUtilityManager : MonoBehaviour { /// <summary> /// サーバIP手動設定パネルのオブジェクト /// 表示・非表示を切り替えるためにUnityのフィールドから設定する /// </summary> public GameObject ManualIpConfigUtility; /// <summary> /// サーバに接続したときと、サーバから切断されたときのイベントを準備する /// </summary> private void Start() { SharingStage.Instance.SharingManagerConnected += this.Connected; SharingStage.Instance.SharingManagerDisconnected += this.DisConnected; } /// <summary> /// サーバに接続したら、サーバIP手動設定パネルを消す /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Connected(object sender, System.EventArgs e) { this.ManualIpConfigUtility.SetActive(false); } /// <summary> /// サーバから切断されたら、サーバIP手動設定パネルを表示する /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DisConnected(object sender, System.EventArgs e) { this.ManualIpConfigUtility.SetActive(true); } }
使う際は、コンポーネントのManual Ip Config UtilityフィールドにManualIpConfigUtilityオブジェクトをドラッグしてください。