Через Vision
Framework я могу обнаружить QR-код. Следующее, что я хотел бы сделать, это разместить SCNPlane точно на QRCode, используя ARKit. Я написал код ниже, чтобы найти положение QRCode в реальном мире. Но SCNPlane продолжает добавляться не в то место. Переменная штрих-кода в приведенном ниже коде имеет тип VNBarcodeObservation.
Может быть, кто-то из вас, ребята, знает, что я делаю неправильно.
let rect = CGPoint(x: barcode.boundingBox.origin.x, y: barcode.boundingBox.origin.y)
let hitTestResults = sceneView.hitTest(rect, types: [.existingPlaneUsingExtent, .existingPlane])
if let hitResult = hitTestResults.first {
//TODO: change to width and height
let plane = SCNPlane(width: 0.1, height: 0.1)
let material = SCNMaterial()
material.diffuse.contents = UIColor.red
plane.materials = [material]
let node = SCNNode()
node.transform = SCNMatrix4MakeRotation(-Float.pi / 2, 1, 0, 0)
node.position = SCNVector3(hitResult.worldTransform.columns.3.x,
hitResult.worldTransform.columns.3.y,
hitResult.worldTransform.columns.3.z)
node.geometry = plane
sceneView.scene.rootNode.addChildNode(node)
}
Редактировать:
Добавил фото текущей ситуации. Красная плоскость добавлена в верхнем левом углу. Однако эта плоскость должна быть добавлена именно в QRCode.