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