8

SCNView 文档说,当用户改变视角时,将 allowCameraControl 设置为 YES 不会更新相机节点位置。当用户改变视角时,有什么方法可以获取用户修改的相机参数?

4

2 回答 2

16

当您启用 时allowsCameraControl,SceneKit 将其自己的相机节点插入到场景中(作为场景根节点的直接子节点),并将该节点设置为视图的pointOfView. 读取该节点的属性以找出相机的位置和方向,或读取节点属性的camera属性以查找相机的视野、深度限制等。

于 2014-07-15T21:26:52.797 回答
9

假设 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);

在我的例子中,我打开了allowCameraControl 并调整了视图,记下了这些值,并在应用程序的开始处设置它们。我只需要设置位置和方向,而不是旋转。

于 2015-05-16T16:29:57.380 回答