【发布时间】:2018-03-29 04:49:40
【问题描述】:
我正在开发一个太阳系快速操场。如果单击该行星,我希望相机放大该行星。我目前遇到的问题是相机无法放大到正确的位置。这是我正在使用的代码。
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)
它总是会移动到场景中的不同位置。我无法弄清楚它是如何找到移动到哪里的。
提前致谢!
【问题讨论】:
-
我认为您应该将行星的位置转换为相机的父节点而不是相机本身。
-
感谢您的反馈。父节点是scene.rootNode。我试过了,那也没用。知道还有什么问题吗?
标签: swift xcode scenekit swift-playground