使用allowsCameraControl时,我可以获得SCNView摄像头位置吗?

时间:2014-07-15 20:56:53

标签: ios scenekit

SCNView文档说,当用户更改视点时,设置allowsCameraControl为YES不会更新摄像机节点位置。当用户改变观点时,有没有办法获得用户修改的摄像机参数?

2 个答案:

答案 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并调整了视图,记下了值,并在应用程序的开头设置它们。我只需要设置位置和方向,而不是旋转。