【问题标题】:How to delete Azure Spatial Anchor after detected检测到 Azure 空间锚点后如何删除
【发布时间】:2019-08-22 17:53:46
【问题描述】:

我开发了一个统一应用程序,并且正在使用 azure 空间锚点。我发现无法删除检测到的 cloudAnchor。我试过这个:

    protected void OnCloudAnchorLocated(AnchorLocatedEventArgs args)
    {
        CloudSpatialAnchor nextCsa = args.Anchor;


        ...
        if (nextCsa != null)
        {
            Debug.Log("BEFORE DELETE");
            await CloudManager.DeleteAnchorAsync(nextCsa);
            Debug.Log("AFTER DELETE");
        }
    }

我在控制台中得到了这个:

StoreAndWatcherTrackedState::TryRemoveAsync 用于 SpatialAnchor: 6b77de6e-d8ba-44ce-b7cc-1f1d09bcc7a5

还有这个错误:

OnError - 指定的空间锚点已与不同的商店关联

所以我有三个问题:

1.错误是什么意思?

2。是否可以从 azure 中删除检测到的锚点?

3.如果是,正确的方法是什么?

【问题讨论】:

    标签: c# unity3d azure-spatial-anchors


    【解决方案1】:

    我无法回答您的第一个问题。但是我给了你关于如何删除锚点的粗略想法。我使用List<CloudSpatialAnchor> 将定位的锚点保存在本地。然后你可以创建一个按钮来删除所有定位到的锚。

    void Start(){
        ...
        List<CloudSpatialAnchor> nextCsa = new List<CloudSpatialAnchor>();
        ...
    }
    
    protected void OnCloudAnchorLocated(AnchorLocatedEventArgs args)
    {
        ...
        nextCsa.Add(args.Anchor);
        ...
    }
    
    public void DeleteAnchor(){
        foreach(CloudSpatialAnchor anchor in nextCsa){
              await this.CloudManager.DeleteAnchorAsync(anchor);
        } 
    }
    

    我希望这会有所帮助。

    +++++++ 编辑 +++++++

    我可能理解第一个问题的解决方案。 您收到的错误可能与Cloud Session 上正在进行的事件有关。您尝试在 LocateAnchorsCompleted 事件完成之前删除锚点。所以,我建议你完成定位锚,然后使用停止观察者

    args.Watcher.Stop();
    

    然后删除空间锚。

    【讨论】:

      猜你喜欢
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 2021-02-06
      • 2020-04-02
      相关资源
      最近更新 更多