【问题标题】:ARKit Resuming SessionARKit 恢复会话
【发布时间】:2025-12-22 04:50:07
【问题描述】:

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

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

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

【问题讨论】:

    标签: ios


    【解决方案1】:

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

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

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

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

    如果您有兴趣重新启动您返回的 AR 会话,您可以查看my answer on this thread

    【讨论】: