2017-06-06 97 views
1

我想创建ARSession,使用ARKit与Xcode 9.但它似乎无法正常工作。iOS 11:ARKit - 与ARSession的问题

代码我已经试过是:

override func viewDidLoad() { 
     super.viewDidLoad() 

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

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

谁能帮助?根据苹果文档,代码几乎是正确的。

+0

你试过这个问题?什么是[ARSessionConfiguration。 isSupported](https://developer.apple.com/documentation/arkit/arsessionconfiguration/2867255-issupported)返回? – vrwim

+0

@vrwim我在我的iPad mini 2(A7芯片)上试过,并且确实支持ARSessionConfiguration。然而,ARWorldTrackingSessionConfiguration不是,你不能自由地交换另一个..它崩溃的应用程序 – kernelpanic

+0

我试着用ARSessionConfiguration在iPad Air中运行,它仍然崩溃。 –

回答

0

你有浏览器的生命周期问题。根据ARSession的苹果指南,它可以在你查看完成后加载Session。我的意思是,用户视图看起来会运行你的会话。

这里是相同的苹果文档:Building a Basic AR Experience

而且,看看下面的示例。

enter image description here

0

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

按照苹果的文档:

  • 在与A9处理器或更高版本的iOS设备 ARWorldTrackingSessionConfiguration 子类提供高精度的运动跟踪,使功能,可以帮助您将虚拟内容相对于实际-world 表面。

  • 在ARKit支持的其他设备上,ARSessionConfiguration基本类 类提供基本的运动跟踪,允许稍微减少沉浸式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 
0

还有一个问题是,由于iOS11β1的错误,iOS 11 Beta 1 Release Notes And Known Issues According To Apple

snapsot image

这意味着你需要一个iPhone 6S或更好地在当前时间使用ARKit(ARSessionConfiguration)。直到iOS11 Beta2版本......

2017年7月13日更新

我iphone6不得不更新iOS11 beta3版,它可以运行ARWorldTrackingSessionConfiguration,太神奇了!

2017年9月7日更新

iphone6不能在最近iOS11测试运行ARWorldTrackingConfiguration ...... :(

0

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

let scene = SCNScene() 
sceneView.scene = scene 

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