我是 SceneKit 的新手,我可以在以下方面使用您的帮助:我有两个 SCNView - 一个大的(skView)为用户显示场景,用户可以在启用标准 allowCameraControl 选项的情况下对其进行操作 - 另一个小的( coordinateCrossView)在左角显示一个坐标交叉,我想反映用户在大型 SCNView 中执行的任何相机导航
我通过使同时拥有 SCNViews 的 ViewController 成为 SCNRendererDelegate 并通过更新渲染器中的交叉方向来实现它: updateAtTime: 方法如下:
- (void)renderer:(id<SCNSceneRenderer>)renderer updateAtTime:(NSTimeInterval)time {
[self.coordinateCrossView.scene.rootNode childNodeWithName:@"cross" recursively:YES].orientation = self.skView.pointOfView.orientation;
[self.coordinateCrossView setNeedsDisplay];
}
到目前为止,一切都很好。但是,这仅在用户用手指在屏幕上操作大 SCNView 时才有效。在手指离开屏幕时作为滑动手势后,大 SCNView 中的对象继续旋转一点 - 但坐标十字不会更新。任何想法为什么 pointOfView.orientation 更改未捕获此行为?