【问题标题】:Track percentage download of .SCN file跟踪 .SCN 文件的下载百分比
【发布时间】:2020-06-15 06:06:03
【问题描述】:

我是 ARKIT 的新手,我只是想知道有没有办法跟踪 .SCN 文件下载的百分比进度。我曾尝试使用 URL 会话,但无法正常工作。

虽然我的代码运行良好,但如果我的代码完全关闭,请告诉我如何让它变得更好!

 private func dowloadModel(){
        let url = URL(string: "URL for .SCN")!

        URLSession.shared.dataTask(with: url) { data, response, error in

            if let error = error{
                print(error.localizedDescription)
                return
            }

            if let data = data{
                print(data)

                let documentDirectories = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)

                if let documentDirectory = documentDirectories.first{

                    let fileURL = documentDirectory.appendingPathComponent("Food.scn")
                    let dataNS : NSData? = data as NSData

                    try! dataNS?.write(to: fileURL, options: .atomic)

                    let url1 = URL(string: "URL for .jpg overlay")
                    let data1 = try? Data(contentsOf: url1!) //make sure your image in this url does exist
                    self.imagesOne = UIImage(data: data1!)

                    print("Saved!")
                }
            }

        }.resume()
    }

这就是我渲染节点的方式:

 func addItem2(hitTestResult : ARHitTestResult){
        let documentDirectories = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)

        if let documentDirectory = documentDirectories.first{
            let fileURL = documentDirectory.appendingPathComponent("Food.scn")

            do{
                let scene = try SCNScene(url: fileURL, options: nil)
                let node = scene.rootNode.childNode(withName: "Burger", recursively: true)!

                let material = SCNMaterial()
                material.diffuse.contents = imagesOne
                material.diffuse.wrapT = SCNWrapMode.repeat
                material.diffuse.wrapS = SCNWrapMode.repeat
                material.isDoubleSided = true

                let transform = hitTestResult.worldTransform
                let thirdColumn = transform.columns.3

                node.scale = SCNVector3(x: 0.008, y: 0.008, z: 0.008)

                node.pivot = SCNMatrix4MakeTranslation(0, -0.5, 0)

                node.position = SCNVector3(thirdColumn.x, thirdColumn.y, thirdColumn.z)

                //rotation added
                let action = SCNAction.rotateBy(x: 0, y: CGFloat(2 * Double.pi), z: 0, duration: 15)
                let repAction = SCNAction.repeatForever(action)
                node.runAction(repAction, forKey: "myrotate")

                self.sceneView.scene.rootNode.addChildNode(node)
            }
            catch{
                print(error)
            }

        }

    }

【问题讨论】:

标签: ios swift nsurlsession nsurlsessiondownloadtask nsurlsessionconfiguration


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2014-10-28
    • 2015-11-11
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 2011-05-29
    • 2010-09-05
    • 2011-01-20
    相关资源
    最近更新 更多