2014-07-15 9 views

risposta

7

Quando si attiva allowsCameraControl, SceneKit inserisce il proprio nodo della telecamera nella scena (come figlio immediato del nodo radice della scena) e imposta tale nodo come pointOfView della vista. Leggere le proprietà di quel nodo per conoscere la posizione e l'orientamento della telecamera, o le proprietà di attributo del nodo camera trovare campo visivo della telecamera di vista, limiti di profondità, ecc

+0

Non l'ho visto! Devo aver guardato qualche vecchia documentazione. – bugloaf

+1

Non riesco proprio a recuperare questo nodo. Come posso trovarlo? – berfis

+1

@rickster Non riesco a trovare la fotocamera come descritto "come figlio immediato del nodo radice della scena". È sempre zero. "sceneView.scene? .rootNode.childNodes.first? .camera", "sceneView.scene? .rootNode.camera" e "sceneView.scene? .rootNode.enumerateChildNodes ({(nodo, stop) nella stampa (" camera: \ (node.camera) ") }" tutti restituiscono nulla. – zumzum

6

Supponendo mySCNView rappresenta l'SCNView ..

@property (weak, nonatomic) IBOutlet SCNView *mySCNView; 

Poi si può ottenere la posizione della telecamera da ..

NSLog(@"Camera position: %f %f %f", _mySCNView.pointOfView.position.x, _mySCNView.pointOfView.position.y, _mySCNView.pointOfView.position.z); 

NSLog(@"Camera rotation: %f %f %f %f", _mySCNView.pointOfView.rotation.x, _mySCNView.pointOfView.rotation.y, _mySCNView.pointOfView.rotation.z, _mySCNView.pointOfView.rotation.w); 

NSLog(@"Camera orientat: %f %f %f %f", _mySCNView.pointOfView.orientation.x, _mySCNView.pointOfView.orientation.y, _mySCNView.pointOfView.orientation.z,_mySCNView.pointOfView.orientation.w); 

Nel mio caso, ho acceso allowsCameraControl e regolato la vista, annotato i valori, e li misi alla partenza dell'applicazione. Ho solo bisogno di impostare la posizione e l'orientamento, non la rotazione.

Problemi correlati