ARKit恢复会话

时间:2017-07-24 00:22:18

标签: ios

我有一个ARKit应用程序,允许用户将多维数据集添加到场景中。这很好,我可以看到立方体。但是当我将应用程序推到后台然后将设备移动到另一个位置(通过步行到另一个房间)时,ARKit会话无法确定旧节点的正确位置。

无论如何,我可以找到解决此问题的方法,以便当应用程序从后台恢复到前台时,它仍会记住节点的位置。

更新:我正在考虑为用户保存lat和long,然后以某种方式将那些lat和long转换为SCNVector3以放置节点。

1 个答案:

答案 0 :(得分:2)

您可能无法让AR在后台运行。 Apple不建议暂停会话或中断会话并尝试恢复:

  

避免中断AR体验。如果用户转换到应用中的另一个全屏UI,则AR视图在返回时可能不是预期的状态。

     

使用弹出式演示(甚至在iPhone上)辅助视图控制器,以在调整设置或进行模式选择时使用户保持AR体验。在此示例中,SettingsViewControllerVirtualObjectSelectionViewController类使用popover演示文稿。

问题是,一旦会话中断,设备停止使用它跟踪AR节点以及您的位置的机制,可能必须建立一种机制来保持应用程序在背景和通过它运行ARSession。您可以在github上找到允许在后台运行的项目。您可能面临的另一个问题是Apple在后台运行应用程序的限制which is apparently 3 minutes

如果您对重新启动AR会话感兴趣,那么您可以看到my answer on this thread