HoloLensでSharingするときはSharing ServerのIPの入力が必要です
リンク先では、OCRで実装していますが他にもやり方が記事内で紹介されています
t.co
考えうるIPの入力方法一覧
- Editorで入力してビルドする(最悪の方法)
- 固定IPを用いる
- アドレスを書いてあるファイルにアクセス
- UDPでサーバーのIPをブロードキャスト(ルータのセキュリティ設定による)
- OCRで読み込む(手書き文字は困難っぽい)
- QRコードを読み込む
- アプリ内で入力
このようにいくつか方法はありますが、今回は簡単にファイルから読み込む方法をメモしておきます
ファイルを作成するにあたって、カメラロールにファイルを保存している理由はDevicePortalからのアクセスが楽なのとデプロイしても上書きされないためです
以下のスクリプトをSharing prefabにアタッチしてください
using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using HoloToolkit.Sharing; #if UNITY_UWP using Windows.Storage; using System.Threading.Tasks; #endif [RequireComponent(typeof(SharingStage))] public class SharingConfig : MonoBehaviour { SharingStage _sharingStage; [Tooltip("Please put file u created under the CameraRoll")] public string fileName; // Use this for initialization void Start () { _sharingStage = GetComponent<SharingStage>(); _sharingStage.ConnectToServer(GetServerIPFromFile(), _sharingStage.ServerPort); } string GetServerIPFromFile() { var serverIP = "localhost"; #if !UNITY_EDITOR //HoloLens内ではカメラロールを参照しています try { var folder = Windows.Storage.KnownFolders.CameraRoll; var sr = new StreamReader((System.IO.Stream)File.OpenRead(Path.Combine(folder.Path, fileName))); serverIP = sr.ReadLine(); sr.Dispose(); } catch { serverIP = _sharingStage.ServerAddress; } #else //Unity Edititor内では、Assetと同じ階層を参照しています if (!File.Exists(fileName)) { return serverIP; } var sr = new StreamReader(fileName); serverIP = sr.ReadLine(); sr.Close(); #endif return serverIP; } }