首页 > 解决方案 > Swift、SceneKit 和相机位置

问题描述

我正在开发一个显示 3D 人体的应用程序 - 在 SceneKit 编辑器中,我已将相机设置为指向模型。

正如我设置的sceneView.allowsCameraControl = true,用户可以通过简单的手势在对象周围移动、放大和缩小。

为了垂直移动,我实现了一个 UISlider - 我不希望用户用两个手指手势垂直平移。

在滑块操作中,我执行以下操作:

@IBAction func sliderDidMove(_ sender: UISlider) {
    cameraNode = sceneView.scene?.rootNode.childNode(withName: "camera", recursively: true)
    let vert = 1.5*(0.5 - sender.value)
    cameraNode?.position.y = posY + vert
}

当我在加载 ViewController 后更改滑块位置时,这可以正常工作。但是一旦我通过手势旋转或缩放模型,滑块就不再显示效果 - 因此我不能再以编程方式更改相机节点的位置。

有谁知道我该如何解决这个问题?

标签: iosswiftscenekitscnscenescncamera

解决方案


推荐阅读