Я создаю приложение для распознавания изображений, используя ARKit, где пользователь наведет камеру на несколько разных изображений в пространстве, и видео будет воспроизводиться поверх этих изображений. Я создал UILabel с сообщениями, чтобы предоставить инструкции пользователю. Когда пользователь впервые открывает приложение, я хочу показать ему сообщение с указанием указать камеру на изображение. Всякий раз, когда камера отслеживает изображение, я хочу, чтобы UILabel исчезла.
В моем коде я получил его там, где я могу сделать так, чтобы ярлык исчезал при отслеживании изображения, но я не могу заставить его снова появиться, когда я больше не отслеживаю изображение.
extension ViewController: ARSCNViewDelegate {
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor:
ARAnchor) -> SCNNode? {
let node = SCNNode()
//Show video overlayed to image
if let imageAnchor = anchor as? ARImageAnchor{
DispatchQueue.main.async { self.messageView?.isHidden =
true }
let plane = SCNPlane(width:
imageAnchor.referenceImage.physicalSize.width, height:
imageAnchor.referenceImage.physicalSize.height)
//Create Plane
switch imageAnchor.referenceImage.name!{
case "slaveAuction":
//Set AVPlayer as the planes texture and play
plane.firstMaterial?.diffuse.contents =
self.slaveAuction
self.slaveAuction.play()
case "columbus":
plane.firstMaterial?.diffuse.contents =
self.columbus
self.columbus.play()
case "isabellasCourt":
plane.firstMaterial?.diffuse.contents =
self.isabellasCourt
self.isabellasCourt.play()
case "hawksbell":
plane.firstMaterial?.diffuse.contents =
self.hawksbell
self.hawksbell.play()
default:
print("Images not found")
}
let planeNode = SCNNode(geometry: plane)
// Rotate the plane to match the anchor
planeNode.eulerAngles.x = -.pi/2
// Add plane node to parent
node.addChildNode(planeNode)
}
return node
}
}
Мне нужна помощь для отображения сообщения, когда я не отслеживаю изображение.