发送双击到SCNView

时间:2016-11-14 01:53:54

标签: ios swift scenekit

SCNView构建摄像机控件具有一个功能,双击场景视图和回滚摄像头,以启用allowCameraControl时开始位置。

我去添加一个按钮做同样的事情

当用户点击按钮时,我将回滚相机以开始位置

在scenekit中没有类实现UIControl

所以我不能使用sendAction

我可以通过scnView.pointOfView

设置相机位置

但是当用户滚动相机时会有动画,动画运行时设置相机位置会失败。

是否有一种重置相机的好方法?

2 个答案:

答案 0 :(得分:1)

NicoS的回答有效地处理了有关使用户操作更改相机POV的部分问题。

关于设置pointOfView时不需要的动画的问题 - 您可以使用SCNTransaction类控制该动画(以及更改对象属性时发生的任何其他隐式动画)。要在没有动画的情况下进行更改,只需执行此操作(Swift 3):

SCNTransaction.begin()
SCNTransaction.animationDuration = 0
// perform your changes...
view.pointOfView = newCameraNode
// ...and anything else you want to happen in the same non-animated update, then...
SCNTransaction.commit()

答案 1 :(得分:0)

只需将TapGestureRecognizer添加到故事板,即可添加到具有SCNView的视图。将手势识别器操作连接到您的班级,以便您拥有IBAction。在Storyboard Attributes Inspector中将分接头数设置为两个分接头。现在您可以添加代码来重置相机。