0

目标:将 scn 文件保存到磁盘。

我做了什么:尝试使用这个 API: https ://developer.apple.com/documentation/scenekit/scnscene/1523577-write

问题:出现此错误:AttributeGraph:通过属性 248096 检测到循环 === 操作无法完成。(MDLErrorDomain 错误 0。)

任何帮助深表感谢!

  let scnScene = SCNScene(named: "Art.scnassets/Ship")!

//get documents URL
func getDocumentsDirectory() -> URL {
    let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    return paths[0]
}
  //save scn to disk
    func saveSCNFileToDisk() {
        let url = getDocumentsDirectory()
        scnScene.write(to: url, options: nil, delegate: nil) { float, error, pointer in
            if let error = error {
                print(error.localizedDescription)
                return
            }
            self.scene = url.absoluteString
            
        }
    }
4

1 回答 1

0

您的代码应按照文档中的说明指定文件方案

//save scn to disk
func saveSCNFileToDisk() {
    let url = getDocumentsDirectory().appendingPathComponent("someFleName.scn)
    scnScene.write(to: url, options: nil, delegate: nil) { float, error, pointer in
        if let error = error {
            print(error.localizedDescription)
            return
        }
        self.scene = url.absoluteString
        
    }
}
于 2021-09-06T18:09:42.427 回答