【问题标题】:SceneKit camera not moving to proper locationSceneKit 相机没有移动到正确的位置
【发布时间】: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


【解决方案1】:

我想通了!代码需要看起来像

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

holderNodes[i]是planetNodes[i]的父节点,scene.rootNode是camera的父节点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-21
    • 2017-03-28
    • 2012-09-17
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    相关资源
    最近更新 更多