SceneKit 相机没有移动到正确的位置
Posted
技术标签:
【中文标题】SceneKit 相机没有移动到正确的位置【英文标题】:SceneKit camera not moving to proper location 【发布时间】: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。我试过了,那也没用。知道还有什么问题吗? 【参考方案1】:我想通了!代码需要看起来像
let location = holderNodes[i].convertPosition(planetNodes[i].position, to: scene.rootNode)
holderNodes[i]是planetNodes[i]的父节点,scene.rootNode是camera的父节点。
【讨论】:
以上是关于SceneKit 相机没有移动到正确的位置的主要内容,如果未能解决你的问题,请参考以下文章