Недавно я разрабатываю Azure Spatial Anchor в Hololens. После изучения этого руководства с веб-сайта Microsoft здесь я немного подправил свой код. До сих пор это работало хорошо. Пока я не попытаюсь найти якорь, который я создал. После того, как мой якорь найден (и создан экземпляр найденного якоря), мои приложения внезапно закрылись. Он доходит до той части, где отображается текст «Найдено!». Вот часть моего кода, которая находит якорь.
void Update(){
lock (dispatchQueue)
{
if (dispatchQueue.Count > 0)
{
dispatchQueue.Dequeue()();
}
}
}
protected void QueueOnUpdate(Action updateAction)
{
lock (dispatchQueue)
{
dispatchQueue.Enqueue(updateAction);
}
}
private void CloudSpatialAnchorSession_AnchorLocated(object sender, AnchorLocatedEventArgs args){
switch (args.Status){
case LocateAnchorStatus.Located:
QueueOnUpdate(() =>{
var cube = GameObject.Instantiate(cubePrefab) as GameObject;
cube.transform.localScale = new Vector3(0.1f, 0.1f, 0.1f);
cube.AddComponent<WorldAnchor>();
cube.GetComponent<UnityEngine.XR.WSA.WorldAnchor>().SetNativeSpatialAnchorPtr(args.Anchor.LocalAnchor);
cubeMaterial = cube.GetComponent<Renderer>().material;
cubeMaterial.color = Color.red;
this.cubes.Add(cube);
cloudAnchorId = "";
this.msg.text = "Found!";
Task.Run(async () =>{
await Task.Delay(1000);
});
});
break;
case LocateAnchorStatus.AlreadyTracked:
this.msg.text = "ASA Info: Anchor already tracked. Identifier: " + args.Identifier;
break;
case LocateAnchorStatus.NotLocated:
this.msg.text = "ASA Info: Anchor not located. Identifier: " + args.Identifier;
break;
case LocateAnchorStatus.NotLocatedAnchorDoesNotExist:
this.msg.text = "ASA Error: Anchor not located does not exist. Identifier: " + args.Identifier;
break;
}
}
private void CloudSpatialAnchorSession_LocateAnchorsCompleted(object sender, LocateAnchorsCompletedEventArgs args){
this.msg.text = "ASA Info: Locate anchors completed. Watcher identifier: " + args.Watcher.Identifier;
Task.Run(async () =>{
await Task.Delay(2500);
});
args.Watcher.Stop();
}
Я использовал Azure Spatial Anchor SDK v1.1.0, Unity3D 2019.1.10f и Visual Studio 2017.
кто-нибудь знает причину?