ZHA*_*ida 5 3d ios scenekit swift swift3
从 URL 导入 .obj 文件并将其转换为 SCNNode 时出现问题
这是代码(swift3):
let url = URL.init(string: "https://cloud.box.com/shared/static/ock9d81kakj91dz1x4ea.obj")
let asset = MDLAsset(url: url! as URL)
let object = asset.object(at: 0)
let node = SCNNode(mdlObject: object)
Run Code Online (Sandbox Code Playgroud)
但是当我运行项目时,控制台显示:
Could not open OBJ file
Run Code Online (Sandbox Code Playgroud)
如何处理?
我认为您的 OBJ 文件超出了某些内部 iOS 限制。请在https://bugreport.apple.com提交报告。
这个稍微修改过的代码版本可以在 macOS Playground (Xcode 8.0) 中完美运行。但在 iOS 游乐场中,我在控制台中看到相同的“无法打开 OBJ 文件”。
import SceneKit
import ModelIO
import SceneKit.ModelIO
if let url = URL.init(string: "https://cloud.box.com/shared/static/ock9d81kakj91dz1x4ea.obj") {
let asset = MDLAsset(url: url)
print(asset)
let object = asset.object(at: 0)
print(object)
let node = SCNNode.init(mdlObject: object)
print(node)
}
Run Code Online (Sandbox Code Playgroud)
我能够使用 Xcode 下载并打开 OBJ 文件。然后在场景编辑器中,我将其转换为 SCN 格式。这给了我一个 .SCN 文件,可以嵌入到 iOS 项目中并用 SCNScene 打开(就像著名的旋转宇宙飞船)。因此,如果您可以接受在 iOS 应用程序中嵌入静态文件,那么这是一种获取模型的方法。但如果您需要动态加载模型,那么它就行不通了。
| 归档时间: |
|
| 查看次数: |
7965 次 |
| 最近记录: |