正如我們在下圖中看到的那樣,場景圖中有多個節點。要求是我想要在一個節點中添加這些節點,如image2所示。所以在場景圖,我將有一個節點(椅子),將包含多個節點如何將多個節點連接到iOS場景中的一個節點
Image1
Image2
正如我們在下圖中看到的那樣,場景圖中有多個節點。要求是我想要在一個節點中添加這些節點,如image2所示。所以在場景圖,我將有一個節點(椅子),將包含多個節點如何將多個節點連接到iOS場景中的一個節點
Image1
Image2
我的建議是:
我使用第二個幾次來使用ARKit構建動態場景。像魅力一樣工作。
基本上,我說我的.dae文件的所有孩子的一個SCNNode:
var node = SCNNode()
let scene = SCNScene(named: "myScene.dae")
var nodeArray = scene.rootNode.childNodes
for childNode in nodeArray {
node.addChildNode(childNode as SCNNode)
}
你應該給它與你的文件一試,用同樣的方法.addChildNode :)
你創建一個父節點,然後將所有節點添加爲子節點。
即:
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)
和使用得到任何孩子的父母:
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
}
順便說一句,這意味着您可以忽略大部分上述內容,並使用作爲parent
節點。
請您分享一下動態方法的代碼 –
@Ankitgarg檢查我的更新回答:) –