Je suis en train d'apprendre ARKit et Scenekit simultanément, et cela a été un peu un défi.
Après avoir créé une session ARWorldTrackingSessionConfiguration, je me demandais si quelqu'un connaissait un moyen d'obtenir la position de la "caméra" de l'utilisateur dans la session scène. L'idée est que je veux animer un objet vers la position actuelle de l'utilisateur.
let reaperScene = SCNScene(named: "reaper.dae")!
let reaperNode = reaperScene.rootNode.childNode(withName: "reaper", recursively: true)!
reaperNode.position = SCNVector3Make(0, 0, -1)
let scene = SCNScene()
scene.rootNode.addChildNode(reaperNode)
// some unknown amount of time later
let currentCameraPosition = sceneView.pointOfView?.position
let moveAction = SCNAction.move(to: currentCameraPosition!, duration: 1.0)
reaperNode.runAction(moveAction)
Cependant, il semble que currentCameraPosition soit toujours [0,0,0], même si je déplace la caméra. Avez-vous une idée de ce que je fais de mal ? En fait, l'idée est de faire tourner l'objet autour d'une sphère invisible jusqu'à ce qu'il soit devant la caméra, puis de l'animer en faisant quelque chose de similaire à ceci : Faire pivoter le nœud SCNCamera regardant un objet autour d'une sphère imaginaire (de cette façon, l'utilisateur voit l'objet s'animer vers lui).
Merci pour toute aide.