IOS Как получить настраиваемый изменяемый размер SKVideoNode для ссылки на положение и размер настраиваемого изменяемого размера ARImageAnchor SCNPlane - PullRequest
0 голосов
/ 08 октября 2018

В настоящее время, когда я строю свой телефон, я вижу, как SCNPlane появляется поверх изображения, которое обнаруживает камера.У SCNPlane нет проблем с настройкой размера изображения, которое он обнаруживает.У меня проблемы с тем, чтобы взять SCNPlane и заменить его SKVideoNode и его SKScene, который также может автоматически подстраивать его размер под изображение.

Есть идеи?

Спасибо!

 if let imageAnchor = anchor as? ARImageAnchor
        {

            //get plane
            let plane = SCNPlane(width: imageAnchor.referenceImage.physicalSize.width, height: imageAnchor.referenceImage.physicalSize.height)

            plane.firstMaterial?.diffuse.contents = UIColor(white: 1, alpha: 0.8)

            let planeNode = SCNNode(geometry: plane)
            planeNode.eulerAngles.x = -.pi / 2


            // get container
            guard let container = ARSceneView.scene.rootNode.childNode(withName: "Container", recursively: false) else {return}


            container.removeFromParentNode()

            container.position.y = planeNode.position.y + Float(CGFloat (0.25))
            container.position.z = planeNode.position.z + Float(CGFloat (0.1))

            planeNode.addChildNode(container)
            node.addChildNode(planeNode)

            container.isHidden = false



            //VIDEO SCENE
            let videoURL = Bundle.main.url(forResource: "video", withExtension: "mp4")!
            let videoPlayer = AVPlayer(url:videoURL)

            let videoPlane = SKScene(size: CGSize(width: imageAnchor.referenceImage.physicalSize.width, height: imageAnchor.referenceImage.physicalSize.height))
            //videoPlane = SKScene(size: CGSize(width: 720.0, height: 1280.0))
            let videoNode = SKVideoNode(avPlayer: videoPlayer)

            videoNode.play()
            videoPlane.addChild(videoNode)

            guard let video = container.childNode(withName: "Video", recursively: true) else {return}

            video.geometry?.firstMaterial?.diffuse.contents = videoPlane
...