Как изменить цвет SCNPlane как чистый цвет - PullRequest
0 голосов
/ 16 мая 2018

Я работаю над проектом ARKit, который нуждается в эффекте анимации Ripple при нажатии на горизонтальной плоскости.Для этого я взял объект UIView и передал его в качестве содержимого для материала объекта SCNPlane.Я добавил анимацию Ripple в объект UIView.Все отлично работаетНо я не могу изменить цвет SCNPlane, чтобы очистить цвет.Я могу использовать свойство прозрачности для материала.Но это также скрывает анимацию Ripple.Итак, что мне нужно здесь, так это то, что цвет фона объекта SCNPlane должен быть прозрачным, и пользователю должна отображаться только анимация Ripple.Может кто-нибудь помочь мне в этом.

Это мой код.

    let location = tapGesture.location(in: self.sceneView)
    let results = self.sceneView.hitTest(location, types: .existingPlane)
    if !results.isEmpty{

        guard let result = results.first else{ return }
        let myUIView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 300, height: 300)))
        myUIView.backgroundColor = .red
        let plane = SCNPlane(width: 1.0, height: 1.0)
        plane.firstMaterial?.diffuse.contents = myUIView
        let planeViewNode = SCNNode(geometry: plane)
        planeViewNode.eulerAngles.x = Float(-Double.pi / 2)
        planeViewNode.position = SCNVector3(result.worldTransform.columns.3.x, result.worldTransform.columns.3.y, result.worldTransform.columns.3.z)

        self.sceneView.scene.rootNode.addChildNode(planeViewNode)

        //Ripple animation code goes here 
    }

Я сделал скриншот из приложения Civilizations AR от BBC.Пожалуйста, просмотрите скриншот, нажав на эту ссылку.Это именно то, что мне нужно.

...