SpatialAnchors在游戏对象上找不到AR锚点

时间:2019-06-03 11:11:27

标签: unity3d arkit azure-spatial-anchors

我正在尝试使用空间定位API和网站上提供的示例来实现自己的iOS项目。我正在密切关注这些示例,但是由于某些原因,当我尝试保存锚点时,我的应用程序崩溃了。 Xcode向我显示“在游戏对象上找不到AR锚”,此后发生InvalidOperationException异常。

我已经尝试调试,发现SessionGetArAnchorPointerForId返回InPtr.Zero,它被解释为给定GameObject上缺少的AR锚。当我尝试获取游戏对象的本机锚指针时,会发生错误。

public async void SaveAnchorInCloud(GameObject localAnchor)
   {
       localAnchor.AddARAnchor();//local Anchor is just a Cube instance
       Debug.Log("Added AR Anchor to local Anchor");
       CloudSpatialAnchor cloudAnchor = new CloudSpatialAnchor();
       cloudAnchor.LocalAnchor = localAnchor.GetNativeAnchorPointer(); //error occures here
       await this.cloudSession.CreateAnchorAsync(cloudAnchor);
       Debug.Log("Cloud Anchor erstellt: " + cloudAnchor.Identifier);
   }

我已经将其与空间锚点样本项目进行了比较,但是我似乎找不到如何保存云锚点的任何区别。

1 个答案:

答案 0 :(得分:0)

@Chris,您遇到此问题的原因是在创建本地锚点后在iOS Unity中创建锚点,您需要让框架继续并在之后使用它。如果您看一下我们的示例,那么在获得本机指针之前还需要时间。如果您在创建锚点之后分派代码,这可以确保一帧通过并且您不会看到此问题。