【问题标题】:Load a SCNScene object from the DAE model that is in the Sandbox从沙盒中的 DAE 模型加载 SCNScene 对象
【发布时间】:2018-04-10 03:21:58
【问题描述】:

我需要创建一个 SCNScene 对象及其路径。例如这样的:

/private/var/mobile/Containers/Data/Application/.../tmp/MyUnzippedFiles/4823092205063.dae

我尝试使用:

let virtualObjectScene = try SCNScene(url: url) 

但它返回:

NSURLConnection 完成错误 - 代码 -1002。

我该怎么做?

【问题讨论】:

  • 我面临将 .zip 文件存储在文档目录中的问题,即来自服务器并取消归档该文件。你能帮忙吗?
  • @DivyaThakkar 你好。抱歉,如果我没记错的话,我没有保存 zip 文件。我使用了一个将模型转换为 Xcode 支持的类型的脚本。然后一切顺利。不幸的是,只能给出一个继续前进的方向,我不确定我是否还有任何代码。

标签: ios swift xcode augmented-reality arkit


【解决方案1】:

也许你应该做以下事情。 在 Sandbox 中将路径 documentDirectory 替换为您的路径

let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let pathToObject = documentDirectory + "/tmp/MyUnzippedFiles/4823092205063.dae"
let fileUrl = URL(fileURLWithPath: pathToObject)
let virtualObjectScene = try SCNScene(url: url)

PS。我没有检查此代码,所以可能有一些拼写错误

【讨论】:

  • 为我工作!谢谢。但现在我得到了其中之一:[SceneKit] Error: COLLADA files are not supported on this platform. 使用 dae 文件,以及:[SceneKit] Error: Failed loading : <C3DImage 0x1c02eb580 src:file:///var/containers/Bundle/Application/*that I've deleted*/ARKitUPC.app/../../nico/git/rem-apps/apps/Rembrandt/Rembrandt/Models.scnassets/sharedImages/environment.jpg [0.000000x0.000000]> 使用 scn 文件。据我了解,我对dae 无能为力,因为我在程序工作期间正在下载模型。如果您也能在这方面帮助我,将不胜感激。
  • 看这里stackoverflow.com/questions/30097948/…这可能是你的问题
  • 是的,但正如我所说,我在程序工作期间下载模型,并且那些文章中提到的脚本只允许在程序开始之前执行它,或者每次我使用特殊命令下载新文件时。你知道scn模型的任何解决方案吗?
  • 对不起,不。但是,您为什么不在服务器端应用该脚本一次,以便下载已经需要的 .dae 文件格式?
  • 对不起,回答了这么久,但在我的国家已经是凌晨 2 点,所以我去睡觉了。是的,我也想过这样的事情,但问题是我正在从 Firebase 下载文件。但这仍然是备用计划,告诉客户要么自己运行脚本,要么聘请程序员编写服务器端,所以谢谢你的帮助:)
猜你喜欢
  • 2014-08-05
  • 1970-01-01
  • 2018-03-12
  • 2012-10-13
  • 2013-04-04
  • 1970-01-01
  • 2013-03-22
  • 2012-01-31
  • 2017-09-12
相关资源
最近更新 更多