ARKit - ARSession问题

时间:2017-06-06 09:57:30

标签: ios11 augmented-reality arkit xcode9-beta

我正在尝试创建ARSession,使用带有Xcode 9 beta的ARKit(适用于iOS 11)。但它似乎无法正常工作。

我尝试的代码是:

override func viewDidLoad() {

    super.viewDidLoad()

    // configure session
    let configuration = ARWorldTrackingSessionConfiguration()
    configuration.planeDetection = .horizontal

    // run session
    sceneView.session.run(configuration)
}

有人可以帮忙吗?根据Apple文档,代码几乎是正确的。

4 个答案:

答案 0 :(得分:1)

View控制器的生命周期出现问题。根据ARSession的苹果指南,它可以在你完全加载后查看。我的意思是,用户视图似乎会运行您的会话。

以下是相同的Apple文档:Building a Basic AR Experience

另外,请看下面的示例。

enter image description here

答案 1 :(得分:0)

ARWorldTrackingSessionConfiguration仅支持具有A9处理器或更高版本的iOS设备。

根据Apple doc:

  • 在具有A9处理器或更高版本的iOS设备上, ARWorldTrackingSessionConfiguration    子类提供高精度的运动跟踪,并使功能可以帮助您放置与现实世界相关的虚拟内容 表面。

  • 在ARKit支持的其他设备上,ARSessionConfiguration基础 class提供基本的运动跟踪,允许稍微减少 身临其境的AR体验。

iPhone和处理器:

 iPhone 6 and iPhone 6 plus has A8 processor.
 iPhone SE, iPhone 6s, iPhone 6s plus has A9 processor.
 iPhone 7, iPhone 7plus has A10 processor

答案 2 :(得分:0)

由于iOS11 beta1错误导致另一个问题,iOS 11 Beta 1 Release Notes And Known Issues According To Apple

snapsot image

这意味着您需要iPhone 6S或更高版本才能在当前时间使用ARKit(ARSessionConfiguration)。直到iOS11 beta2发布......

  

2017.07.13更新

我的iphone6已更新到iOS11 beta3,它可以运行ARWorldTrackingSessionConfiguration,太棒了!

  

2017.09.07更新

iphone6无法在最近的iOS11测试版中运行ARWorldTrackingConfiguration ...... :(

答案 3 :(得分:0)

您还需要初始化SCNScene并将其添加到ARSCNView。

let scene = SCNScene()
sceneView.scene = scene

我通常在设置会话之前这样做。