SceneKit相机没有移动到正确的位置

时间:2018-03-29 04:49:41

标签: swift xcode scenekit swift-playground

我正在一个太阳能系统的快速操场上工作。如果点击这个星球,我希望相机放大一个行星。我目前遇到的问题是相机不会放大到正确的位置。这是我正在使用的代码。

public let camera = SCNNode()
camera.camera = SCNCamera()
camera.position = SCNVector3(x: 0, y: -70, z: 50)
camera.eulerAngles = SCNVector3(x: 0.74533, y: 0, z: 0)

let location = planetNodes[i].convertPosition(planetNodes[i].position, to: camera)
let radius = planetNodes[i].position.y
let moveCameraAc = SCNAction.move(to: location, duration: 2)
moveCameraAc.timingMode = .easeInEaseOut
camera.runAction(moveCameraAc)

它将始终移动到场景中的其他位置。我无法弄清楚它是如何找到移动的地方。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我已经弄明白了!代码需要看起来像

let location = holderNodes[i].convertPosition(planetNodes[i].position, to: scene.rootNode)

holderNodes [i]是planetNodes [i]的父级,scene.rootNode是摄像机的父节点。