J'essaie de faire quelque chose de simple et je suis confronté à un problème qui brise l'expérience ARKit.Comment attacher un SCNNode fixé au pointOfView d'ARKit?
Je souhaite attacher un modèle 3D (SCNNode) fixé à un emplacement sur l'écran du téléphone. Je suis capable de faire cela, mais l'expérience semble brisée pour le moment. Lorsque j'ajoute mon noeud à la scène, mon noeud a environ une seconde pour se déplacer avant qu'il ne se bloque. Ce mouvement initial est vraiment mauvais car le nœud peut se figer hors de la vue de la caméra (donc vous ne le voyez pas sur l'écran).
Le code J'utilise:
let scene = SCNScene(named: "resources.scnassets/model.scn")!
let node = scene.rootNode.childNode(withName: "model", recursively: true)!
// this puts the node in front & slightly below the camera
let orientation = SCNVector3(x: 0, y: -0.4, z: -1)
node.position = orientation
let physicsBody = SCNPhysicsBody(
type: .static,
shape: SCNPhysicsShape(geometry: SCNSphere(radius: 0.1))
)
node.physicsBody = physicsBody
sceneView.pointOfView?.addChildNode(node)
Ce code est simple, il ajoute le nœud devant le nœud de la caméra de la scène. Mais je suis confronté au problème où, lorsque le nœud est ajouté à la scène, il a une seconde pour se déplacer sur l'écran (comme je déplace le téléphone) avant qu'il ne gèle en place. Ce que je dois faire, c'est que le nœud apparaisse sur l'écran dans un endroit fixe (fixé au point de vue de la caméra). Je ne veux pas ancrer mon nœud à un endroit dans le monde réel. Je souhaite que l'emplacement de mon nœud dépende du point de vue de la caméra.
Quelle est la bonne façon d'attacher un noeud de sorte qu'il reste au même endroit sur l'écran du téléphone?