11. Holograms 240 : Sharing Holograms
Windows Holographic – Academy という公式チュートリアルの一部
とりあえず動かして試したい場合はコレがお手軽
https://developer.microsoft.com/en-us/windows/mixed-reality/holograms_240
今回ピックアップする内容
チュートリアルではあまり表に出てこない基本的な考え方
実装上のポイントやハマりポイント
How To Learn Sharing
23. var batch = new WorldAnchorTransferBatch();
batch.AddWorldAnchor(anchor.name, anchor);
var buffer = new List<byte>(); // ここにシリアライズ結果を入れてもらう
WorldAnchorTransferBatch.ExportAsync(batch, x => buffer.AddRange(x), x =>
{
const int minAnchorDataSize = 100000; // 適当に最低保証値を設定
if (x != SerializationCompletionReason.Succeeded) return;
if (buffer.Count <= minAnchorDataSize) return;
// 空間アンカーの共有のために buffer をサーバーに送信したり
});
How To Serialize
24. // data (byte[]) : 何らかの方法で手に入れた空間アンカー情報
WorldAnchorTransferBatch.ImportAsync(data, (reason, batch) =>
{
if (reason != SerializationCompletionReason.Succeeded) return;
if (!batch.GetAllIds().Any()) return; // 空間アンカー情報が含まれるか
var name = batch.GetAllIds().First(); // 最初のひとつを使うとする
batch.LockObject(name, gameObject); // 設置したい GameObject に適用
});
How To Deserialize