Votre code semble bon et cela devrait fonctionner. Je l'ai essayé comme le code ci-dessous: après avoir créé une nouvelle application avec le modèle ARKit, j'ai remplacé la fonction 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)
}
Il crée une boîte au point d'origine (0, 0, 0). Malheureusement, votre appareil est à l'intérieur de la boîte, donc vous ne pouvez pas voir cette boîte directement. Pour voir la boîte, déplacez votre appareil loin un peu.
L'image ci-joint est la boîte après le déplacement de mon appareil:
Si vous voulez le voir immédiatement, déplacer la zone à l'avant un peu, ajouter de la couleur et faire le premier matériau soit double face (pour le voir même dans ou hors du côté):
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)
J'ai eu une erreur de construction et j'ai modifié cette partie. Cela n'a pas fonctionné, alors j'ai changé cela. 'node.position = SCNVector3Make ((hitResult? .worldTransform.columns.3.x) !, (hitResult? .worldTransform.columns.3.y) !, (hitResult? .worldTransform.columns.3.z)! ' – ParalaxWobat
A-t-il fonctionné alors? – OxyFlax
Il n'a pas ajouté de cube. J'essayais quelque chose de simple pour ajouter un cube à la scène en AR. Je ne sais pas pourquoi ça ne marche pas. – ParalaxWobat