Scenekit围绕场景旋转相机

时间:2016-05-13 18:42:43

标签: ios scenekit

我在Swift中有一个简单的SceneKit项目,我在场景中添加了两个对象:一个球和一个盒子。

我希望能够:

  1. 用一根手指平移以在场景中旋转相机
  2. 通过单击“移动”按钮移动对象,选择一个对象,然后将其拖动到新位置(通过PanGesture)
  3. 我希望这与allowsCameraControl = false,因为我无法在启用它的情况下做手势2)我想在线下添加更多panGestures。

    我被卡住了,因为我无法让相机围绕场景旋转。我让相机看着一个有约束的物体:

    let constraint = SCNLookAtConstraint(target: globalSCNNode)
    constraint.gimbalLockEnabled = true
    globalCameraSCNNode.constraints = [constraint]
    

    但像这样的平移手势没有做任何事情:

    func panGesture(sender: UIPanGestureRecognizer) {
    let translation = sender.translationInView(sender.view!)
    var action = SCNAction.rotateByX(0, y: 0.5, z: 0, duration: 0.1)
    globalCameraSCNNode.runAction(action)
    

    有人可以帮忙吗? 谢谢,

2 个答案:

答案 0 :(得分:1)

LookAt约束将覆盖panGesture中命令的旋转。尝试删除该约束。

答案 1 :(得分:0)

我猜您的目标是围绕场景中心旋转摄像机,否则,它不是旋转,而是运动。

请查看我基于here的答案this answer