我正在 Solar System 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)
它总是会移动到场景中的不同位置。我无法弄清楚它是如何找到移动到哪里的。
提前致谢!
最佳答案
我想通了!代码需要看起来像
let location = holderNodes[i].convertPosition(planetNodes[i].position, to: scene.rootNode)
holderNodes[i]是planetNodes[i]的父节点,scene.rootNode是camera的父节点。
关于swift - SceneKit 相机没有移动到正确的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49548258/