如何以编程方式瞄准scene.scn中的对象?

时间:2019-02-01 04:15:54

标签: swift xcode scenekit augmented-reality arkit

我的scene.scn中有一个球体,想在ViewController.swift中将该球体作为目标。我可以以某种方式为该对象创建出口吗?我必须创建一个变量并将其设置为等于该对象吗?

2 个答案:

答案 0 :(得分:0)

您必须创建一个变量,然后使用childNodeWithNAme实例函数来查找所需的节点。

 let sphereNode = childNode(withName: "sphereNodeName", recursively: true)!

答案 1 :(得分:0)

如果您在手动加载的Scene graph中有一个3D对象,以及以编程方式制作的其他对象和光源,则可以轻松地在.scn文件中将该对象作为目标。

  

要使您的3D模型可被虚拟程序灯和其他几何图形访问,请使用以下代码:

func childNode(withName name: String, recursively: Bool) -> SCNNode? {
    return SCNNode()
}  

let geometryNode = childNode(withName: "art.scnassets/your3Dmodel", 
                             recursively: true)!

scene.rootNode.addChildNode(geometryNode)

recursively: true的意思是:搜索整个子节点子树,或者 false 仅搜索节点的直接子节点。