你的代码看起来不错,它应该工作。我尝试了下面的代码:使用ARKit模板创建新应用程序后,我已经替换了函数viewDidLoad。
override func viewDidLoad() {
super.viewDidLoad()
// Set the view's delegate
sceneView.delegate = self
let box = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)
let node = SCNNode(geometry: box)
node.position = SCNVector3(0,0,0)
sceneView.scene.rootNode.addChildNode(node)
}
它在原点(0,0,0)处创建一个方框。不幸的是,您的设备在盒子内,因此您无法直接看到该盒子。要查看该框,请稍稍移动设备。
所附的图像是框移动我的设备后:
如果你想第一时间看到它,移动框前面一点,加色,使第一材料是双面(看到它,即使在或出方):
let box = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0)
box.firstMaterial?.diffuse.contents = UIColor.red
box.firstMaterial?.isDoubleSided = true
let boxNode = SCNNode(geometry: box)
boxNode.position = SCNVector3(0, 0, -1)
sceneView.scene.rootNode.addChildNode(boxNode)
我有一个生成错误,改变了这一部分。它没有工作,所以我改变了这一点。 'node.position = SCNVector3Make((hitResult?.worldTransform.columns.3.x)!,(hitResult?.worldTransform.columns.3.y)!,(hitResult?.worldTransform.columns.3.z)! )' – ParalaxWobat
然后呢? – OxyFlax
它没有添加一个多维数据集。我正在尝试一些简单的方法来将AR添加到场景中。我不知道为什么它不起作用。 – ParalaxWobat