环境:ARKit 2.0、iPhone X、iOS 12.1
ARSeesion
在该ARWorldMappingStatusMapped
州运行时,
- 指定位置 ( #A ) 的一些自定义锚点通过 .添加到世界地图中
ARSession.AddAnchor
。 - 世界地图被保存到一个文件中。
然后关闭应用程序并重新启动ARSession
,
- 配置加载保存的世界地图并将其分配给
ARKitWorldTrackingSessionConfiguration.initialWorldMap
- 运行选项重置跟踪并删除现有锚点
- 然后通过调用上面
ARSession.runWithConfiguration
的配置和运行选项重新启动会话。 - 当 的状态
ARSession
表明已将记录的世界地图与当前环境协调一致时,从 中读取锚点(#B)的位置ARWorldMap.anchors
。
但我发现读取锚点的位置(#B )与保存时的位置( #A )相比没有改变。这是不正确的。为什么?
因为手机的初始位置就是坐标原点的位置。并且该应用程序一度关闭,手机被转移到另一个地方。所以重新启动后坐标原点的位置发生了变化ARSeesion
。然后ARSession
还应该将ARAnchors
保存在世界地图中的位置调整到适当的位置,因此ARAnchors
应该已经改变了位置。