SCNView文档说,当用户更改视点时,设置allowsCameraControl为YES不会更新摄像机节点位置。当用户改变观点时,有没有办法获得用户修改的摄像机参数?
答案 0 :(得分:13)
当您启用allowsCameraControl
时,SceneKit会将自己的摄像机节点插入到场景中(作为场景的根节点的直接子节点),并将该节点设置为视图的camera
3}}。阅读该节点的属性,找出相机的位置和方向,或节点{{1}}属性的属性,以查找相机的视野,深度限制,等
答案 1 :(得分:7)
假设mySCNView是SCNView ..
@property (weak, nonatomic) IBOutlet SCNView *mySCNView;
然后你可以从..
获取相机位置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);
在我的情况下,我打开了allowsCameraControl并调整了视图,记下了值,并在应用程序的开头设置它们。我只需要设置位置和方向,而不是旋转。