您的代码看起来不错,应该可以工作。我已经尝试过如下代码:使用 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)