首页 文章

Scenekit 围绕场景旋转相机

提问于
浏览
2

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

我希望能够:

  • 用 1 个手指平移以围绕场景旋转相机

  • 通过单击“移动”按钮移动对象,选择一个对象,然后将其拖动到新位置(通过 PanGesture)

我希望这与 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 回答

  • 1

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

  • 0

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

    请看一下基于这个答案的答案这里

相关问题