【发布时间】:2015-03-02 22:20:55
【问题描述】:
我创建了一个可在我的应用程序中使用的 collada 文件 (.dae)。我正在使用场景工具包。我已经在 Xcode 中预览了该文件,但我无法理解如何通过代码更改节点的属性。
如何在 collada 文件中的节点上设置类似 IBOutlet 的内容。我是否必须从代码中创建节点,以便引用碰撞文件中的视觉元素,或者还有什么需要考虑的。
任何帮助将不胜感激。
【问题讨论】:
我创建了一个可在我的应用程序中使用的 collada 文件 (.dae)。我正在使用场景工具包。我已经在 Xcode 中预览了该文件,但我无法理解如何通过代码更改节点的属性。
如何在 collada 文件中的节点上设置类似 IBOutlet 的内容。我是否必须从代码中创建节点,以便引用碰撞文件中的视觉元素,或者还有什么需要考虑的。
任何帮助将不胜感激。
【问题讨论】:
如果您在 Xcode 中预览 Collada 文件时查看“场景图”部分,您可以看到每个节点都有一个“名称”(也可以是无标题的)。在 Xcode 中预览文件时,您还可以通过选择一个节点并查看节点检查器 (⌥⌘3) 来查看这一点。
在代码中,您可以通过使用-childNodeWithName:recursively: 向场景的根节点(或任何其他父节点)询问具有特定名称的子节点来获取对这些节点中的任何一个的引用:
SCNNode *fooNode = [myScene.rootNode childNodeWithName:@"Foo" recursively:YES];
或者,您可以通过childNodes 和parentNode 属性和-enumerateChildNodesUsingBlock: 方法(都在SCNNode 上)遍历节点层次结构。
【讨论】: