SCNView构建摄像机控件具有一个功能,双击场景视图和回滚摄像头,以启用allowCameraControl时开始位置。
我去添加一个按钮做同样的事情
当用户点击按钮时,我将回滚相机以开始位置
在scenekit中没有类实现UIControl
所以我不能使用sendAction
我可以通过scnView.pointOfView
设置相机位置但是当用户滚动相机时会有动画,动画运行时设置相机位置会失败。
是否有一种重置相机的好方法?
答案 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中将分接头数设置为两个分接头。现在您可以添加代码来重置相机。