我在 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 回答
LookAt 约束将覆盖
panGesture
中命令的旋转。尝试删除该约束。我猜你的目标是围绕场景的中心旋转相机,否则,它不会是旋转,而是运动。
请看一下基于这个答案的答案这里