2017-07-06 89 views
0

我想弄清楚ARKit是如何工作的。因此,我从GitHub下载了两个不同的项目。试图运行ARKit时无法运行会话测试

1)https://github.com/brianadvent/Simple-ARKit-Game

2-)https://github.com/exyte/ARTetris

他们两个我得到 “无法运行会话,配置不支持此设备上: ” 的错误。 我正在Xcode和iOS中运行beta版本的最新版本。

编辑:我在Viewcontroller这个代码。不应该工作吗?

private func getSessionConfiguration() -> ARSessionConfiguration { 
    if ARWorldTrackingSessionConfiguration.isSupported { 
     // Create a session configuration 
     let configuration = ARWorldTrackingSessionConfiguration() 
     configuration.planeDetection = .horizontal 
     return configuration; 
    } else { 
     // Slightly less immersive AR experience due to lower end processor 
     return ARSessionConfiguration() 
    } 
} 
+0

某些设备不支持可能设置的WorldConfiguration。例如iPhone 6不支持。您可以尝试将该配置更改为默认配置,而不是它应该有效。 –

+1

它只支持6s和6s plus,7和7s plus在手机 – karthik

+0

因此我不能在iPhone 6的真实世界场景中获得模型吗?还是只是别的吗? –

回答

3

你必须改变可变ARWorldTrackingSessionConfiguration被设置为在两个项目配置到正常ARSessionConfiguration。想想看,如果你这样做,你只能得到设备的方向,而不是它在真实世界中的位置!所以它可能是,应用程序不能精确地工作。你也可以更换为另一个支持ARWorldTrackingSessionConfiguration的设备,那么一切都应该没问题,但iPhone 6无法做到这一点。

由于karthik只提到了6s和6s plus,7和7s支持WorldTracking配置。它也在iPad(第五代)AFAIK上工作。

更新: 我认为问题是,iPhone 6只有一个A8处理器。该ARKit模块具有重要通知它说:

重要 ARKit需要与A9或更高处理器iOS设备。

要使您的应用仅在支持ARKit的设备上可用,请在应用的部分使用arkit密钥Info.plist。如果增强现实是您应用的辅助功能,请使用 isSupported 属性确定当前设备是否支持您要使用的会话配置。

如果你看看Simple-ARGame,你可以看到,Touches将被监听,但计算速度非常慢。我看了一下iPhone 6的技术文档,它说它只有一个A8处理器。所以可能你必须用另一个设备来测试ARKit。

+0

我编辑了我的问题。我有一个代码,检查如果它有worldtrackin或不,但我仍然得到白色屏幕。我不应该得到一个相机,而不是这个? –

+0

@EmreÖnder查看我更新的答案。 –

+0

我仍然不明白我们可以在iPhone 6中使用ARkit做什么。我的意思是为什么它具有“ARSessionConfiguration()”函数如果我们不能使用它? –