开发基于 ARWorldTrackingConfiguration 的概念代码。从 iOS11.4 上的 Xcode10b1 部署时似乎无法正常工作
特别是代表:
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode?
{
//relevant code here
}
根本没有被调用。当从 Xcode9.4 在同一设备上部署时,相同的代码运行没有任何问题。从 Xcode10 在 iOS12 上部署时也没有任何问题。下面是用于配置和初始化 ARConfiguration 的相关代码。
func resetTrackingConfiguration() {
guard let referenceImages = ARReferenceImage.referenceImages(inGroupNamed: "Photos", bundle: nil) else { return }
var configuration:ARConfiguration!
if #available(iOS 12.0, *) {
configuration = ARImageTrackingConfiguration()
(configuration as! ARImageTrackingConfiguration).trackingImages = referenceImages
(configuration as! ARImageTrackingConfiguration).maximumNumberOfTrackedImages = referenceImages.count
} else {
configuration = ARWorldTrackingConfiguration()
(configuration as! ARWorldTrackingConfiguration).detectionImages = referenceImages
}
let options: ARSession.RunOptions = [.resetTracking, .removeExistingAnchors]
sceneView.session.run(configuration, options: options)
}