【发布时间】:2018-05-20 13:12:53
【问题描述】:
我正在为我的应用程序使用 ARKit,并尝试从网络服务器动态加载 .scn 文件
这是我的代码的一部分
let url = URL(string: "http://192.168.0.31:1234/5a27e09cbad20a7a03ad5d80/box/box.scn")
if let objectScene = try? SCNScene(url: url!, options: [.overrideAssetURLs: true]) {
print("load success")
let node = SCNNode()
for childNode in objectScene.rootNode.childNodes {
node.addChildNode(childNode)
}
sceneView.scene.rootNode.addChildNode(node)
} else {
print("error loading")
}
这里box.scn 包含纹理。我得到了一个错误
加载失败:C3DImage 0x1c00f6f80 src:file:///var/containers/Bundle/Application/110F7AB6-00F8-4E5B-B843-46551A23CB7F/ar.app/maps/CMU_Split_Face_Running_200x400_bump.jpg [0.000000x0.000000]
为什么 Scenekit 会尝试从本地文件加载这些纹理? 我该如何解决?
【问题讨论】:
-
如果您将 .overrideAssetURLs 设置为 TRUE,您还应该指定 .assetDirectoryURLs 加载选项。但是你为什么把它设置为真呢?默认值为 False,这会导致相对于加载 .scn 的 url 加载资产。
-
它也不适用于 False。结果一样!
-
@Gor 如果你解决了这个问题,请更新它。谢谢
-
不,我没有找到解决此问题的方法。仅使用本地模型
-
关于这个问题的任何更新?即使我面临同样的问题。有没有什么方法可以直接从服务器加载.scn文件而不下载呢?