didUpdate рендера для функции узла в ARKit не выполняется - PullRequest
0 голосов
/ 06 марта 2019

Я пытался запустить следующий код в XCode:

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {
    // Checking if the planeAnchor exists
    guard let planeAnchor = anchor as? ARPlaneAnchor else { return }

    // Declaring some variables for future use
    let width = CGFloat(planeAnchor.extent.x)
    let height = CGFloat(planeAnchor.extent.z)
    //The plane(geometry) for the node
    let plane = SCNPlane(width: width, height: height)

    // The planeNode for the plane anchor
    let planeNode = SCNNode(geometry: plane)
    //Setting up the plane node
    planeNode.geometry?.firstMaterial?.diffuse.contents = UIColor.init(red: 0, green: 0, blue: 1, alpha: 0.4)
    planeNode.geometry?.firstMaterial?.isDoubleSided = true

    // Some variables for future use
    let x = CGFloat(planeAnchor.center.x)
    let y = CGFloat(planeAnchor.center.y)
    let z = CGFloat(planeAnchor.center.z)
    // The plane node's position
    planeNode.position = SCNVector3(x,y,z)
    // This is done so that the plane node is horizontal
    planeNode.eulerAngles.x = -.pi / 2

    // Adding the planeNode to the rootNode??
    node.addChildNode(planeNode)

    // Informing the user that a plane anchor has been found
    mainLabel.text = "Found a plane anchor!"

}

и вот код функции viewDidLoad:

override public func viewDidLoad() {
    sceneView.session.run(configuration)
    sceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints, ARSCNDebugOptions.showWorldOrigin]
    view.addSubview(sceneView)
    sceneView.delegate = self
    sceneView.session.delegate = self
    configuration.planeDetection = .horizontal
    //Setup constraints
    setupConstraints()
}

По какой-то причине функция узла рендеринга didUpdate для функции Якоря не выполняется. Текст mainLabel не изменяется вообще, и плоскость никогда не добавляется в представление. Класс публичный. Что может быть причиной этого? Как я могу это исправить? Пожалуйста, помогите.

Спасибо.

...