gpt4 book ai didi

ios - 在 iOS SceneKit 中如何将 .dae 文件加载到 SCNNode 中?

转载 作者:IT王子 更新时间:2023-10-29 05:12:14 26 4
gpt4 key购买 nike

我无法理解如何将 .dae 文件中的几何图形加载到 iOS SceneKit 场景图中。

我知道您可以将 .dae 文件直接加载到 SCNScene 中:

// create a new scene
let scene = SCNScene("test.scnassets/test.dae")

我还知道您可以创建一个空的 SCNScene 并将内置的 3D 对象作为子节点添加到其中:

let scene = SCNScene()
var sphereNode = SCNNode()
sphereNode.geometry = SCNSphere(radius: 1.0)
scene.rootNode.addChildNode(sphereNode)

在第二种情况下,您可以将 .dae 文件加载到 SCNNode 而不是使用内置对象吗?还是需要先将所有.dae 文件加载到SCNScene 中?

如果是后者,那么如何将 SCNNode 对象放置到 SCNScene 下场景图层次结构中的正确位置?

编辑#1:

这现在对我有用,它是@FlippinFun 建议的修改版本。

let url = NSBundle.mainBundle().URLForResource("test.scnassets/test", withExtension: "dae")
let source = SCNSceneSource(URL: url, options: nil)
let block = source.entryWithIdentifier("ID10", withClass: SCNGeometry.self) as SCNGeometry
scene.rootNode.addChildNode(SCNNode(geometry: block))

但也许有更好的方法?以上涉及从 .dae 树手动加载每个标识符。在我的文件中,有一个节点“SketchUp”,其子标识符为“ID2”和“ID10”。此方法不会让您加载根“SketchUp”。 (我收到运行时错误。)

最佳答案

通常的模式是加载您的场景并使用其名称检索您感兴趣的节点

[scene.rootNode childNodeWithName:aName recursively:YES];

然后您可以将此节点重新设置为您的主场景。

关于ios - 在 iOS SceneKit 中如何将 .dae 文件加载到 SCNNode 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25356301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com