最佳答案
您创建一个父节点,然后将所有节点添加为子节点。
IE。:
var nodes: [SCNNode] = getMyNodes()
var parentNode = SCNNode()
parentNode.name = "chair"
for node in nodes {
parentNode.addChildNodes(node)
}
当您对节点应用更新时,更新也会下推到子节点,例如:
parentNode.transform = SCNMatrix4MakeTranslation(0, 0.5, 1.2)
将对所有附加到
parentNode
的子项应用相同的翻译转换.您可以使用以下方式访问特定子项:
parentNode.childNode(withName: nameOfChildNode, recursively: true)
并使用以下方法获取任何 child 的 parent :
myChildNode.parent
编辑:
如果您从场景文件中导入,您仍然可以轻松地以编程方式访问您的节点:
let scene = SCNScene(named: "myScene.scn")
func getMyNodes() -> [SCNNode] {
var nodes: [SCNNode] = [SCNNode]()
for node in scene.rootNode.childNodes {
nodes.append(node)
}
return nodes
}
顺便说一句,这意味着您可以忽略上述大部分内容并使用
myScene.rootNode
作为 parent
节点。
关于ios - iOS场景中如何将多个节点加入一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46669215/