首页 文章

iOS ARKit 状态(cameraDidChangeTrackingState)停留在初始化中,无法跟踪

提问于
浏览
4

预先为 newb 问题道歉(无法在 SO 上的其他位置找到),但是有人在获取 and/or 所有 ARKit 演示进行初始化时遇到问题吗?

以默认的默认应用程序为例-创建空的 ARKit 项目时会得到什么。我看到的是,这艘船悬停在默认视口上方,当我平移时,它几乎保持在视口的中心,而不是固定在太空中,所以我无法在飞船上方或侧面移动。当我查看 cameraDidChangeTrackingState 中的相机状态属性时,它显示为“受限/初始化,但从未对此进行更改。我觉得我必须缺少一些明显的东西,例如授权-或其他设备级别设置?

func session(_ session: ARSession, cameraDidChangeTrackingState camera: ARCamera) {
    switch camera.trackingState {
    case .notAvailable:
        print("Tracking: not available: \(camera.trackingState)")
    case .limited(let reason):
        print("Tracking limited: \(reason)") <-- only gets here, with "initializing"
    case .normal:
        print("tracking normal: \(camera.trackingState)")
    }
}

物有所值,我正在使用 Xcode 9.0 和一部 iPhone 8。

谢谢!

2 回答

  • 2

    看起来很奇怪,只是重启手机就解决了我所看到的所有应用程序上的问题。我不知道出了什么问题或为什么出了错。

  • 0

    您必须将以下代码行添加到viewDidLoad()

    let configuration = ARWorldTrackingConfiguration()
        configuration.planeDetection = .horizontal
    sceneView.session.run(configuration)
    

    然后,这将允许 ARKit 场景开始跟踪曲面。

相关问题