约束allowCameraControl SCNView属性只是捏/缩放手势

时间:2018-05-01 15:48:32

标签: ios swift scenekit gesture scncamera

我有一个场景,在某些事件之后,我希望用户能够与相机进行交互,但仅针对pinch/zoom gesture。我想为此目的启用allowsCameraControl SCNView属性。

当您启用allowsCameraControl时,所有手势都已启用,其中一些手势使用起来非常直观,也不易控制。我还需要滑动手势可用于控制相机的不同之处。

有没有办法将相机控制限制在pinch/zoom gesture?在文档中,我找到了一个SCNCameraController类,但它的描述极其稀疏,并且没有弄清楚如何使用它。

1 个答案:

答案 0 :(得分:1)

allowCameraControl对于通用的东西来说有点酷,但同意的,稀疏的文档。可能最好实现自己的相机控制。这不是太糟糕 - 添加cameraEye和cameraFocus节点,然后使用SCNLookAtConstraint进行设置。像这样:

func setView()
{
 cameraEye.constraints = []
 cameraEye.position = SCNVector3(x: 0, y: 10, z: 12)
 cameraFocus.position = SCNVector3Make(0, 0, 0)
 let vConstraint = SCNLookAtConstraint(target: cameraFocus)
 vConstraint.isGimbalLockEnabled = true
 cameraEye.constraints = [vConstraint]
}

从那里 - 放大/缩小只是改变cameraFocus.position,取决于你想要它的复杂程度。希望有所帮助!