gpt4 book ai didi

ios - 将相机旋转与 SceneView 中的网格/刻度对齐

转载 作者:行者123 更新时间:2023-11-29 05:58:32 27 4
gpt4 key购买 nike

我有一个位于 SCNVector3.zero 的地球仪,带有 OrbitTurntable/allowsCameraControl 和一个使用 SCNLookAtConstraint 来观察地球仪的相机。这非常有效。我想添加的是清理旋转的功能,以便自由旋转会捕捉到最接近的 5 度,并且每次经过 5 度刻度线时都会发出咔哒声。解决这个问题的最佳方法是什么?

我没有任何运气..在renderer()内部我尝试过SCNTransformConstraint、SCNMatrix4MakeRotation、SCNAction.rotateBy,当然只是直接更改eulerAngles.x/y。任何指导表示赞赏!谢谢!!

var scnView: SCNView = {
let v = SCNView()
v.autoenablesDefaultLighting = true
v.allowsCameraControl = true
v.defaultCameraController.interactionMode = .orbitTurntable
v.defaultCameraController.target = SCNVector3.zero
v.defaultCameraController.inertiaEnabled = true
return v
}()
let camConstraint = SCNLookAtConstraint(target: scene?.rootNode)

最佳答案

我成功地关闭了相机控制

    v.allowsCameraControl = false

然后使用平移手势

    let panGesture = UIPanGestureRecognizer(target: self, action: #selector(panHandler(_:)))
scnView.addGestureRecognizer(panGesture)

但最终我使用了 https://github.com/dclelland/DirectedPanGestureRecognizer 中的这个

    let gestureRecognizer = DirectedPanGestureRecognizer()
gestureRecognizer.delegate = self
scnView.addGestureRecognizer(gestureRecognizer)

我必须编写自己的旋转代码等,但这是值得的!

关于ios - 将相机旋转与 SceneView 中的网格/刻度对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54892272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com