【问题标题】:My positions are the same, but nodes are not in the same place?我的位置相同,但节点不在同一个地方?
【发布时间】:2019-09-04 22:58:41
【问题描述】:

在我的 SceneKit 场景中,我有一个节点,它是一个玩家将与之交互的球和一个相机,相机是一个名为“selfieStick”的对象的子对象,它将跟随球并提供所谓的框架让相机聚焦球。当我实现这一点时,我正在使用以下代码:

func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
    let ball = ballNode?.presentation
    let ballPosition = ball?.position

    selfieStickNode?.position = ballPosition!
}

但是当我运行游戏并点击球(让它向前跳)时,自拍杆和球会朝两个不同的方向移动......一旦我打开场景检查器并进入场景,我会检查位置球和 seflieStick 的所有内容和位置都是相同的,因为它们应该是......但节点不在场景中的同一位置......下面的屏幕截图。

【问题讨论】:

    标签: ios swift iphone scenekit


    【解决方案1】:

    我想通了...由于某种原因,selfieStick 每次都朝相反的 Z 方向移动...所以我使用以下代码对其进行了修复:

    func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
        let ball = ballNode?.presentation
        let ballPosition = ball?.position
        let finalPosition = SCNVector3(ballPosition!.x,
                                       ballPosition!.y,
                                       (ballPosition!.z * -1))
    
        selfieStickNode?.position = finalPosition
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-05
      • 2020-08-03
      • 2016-11-08
      • 2021-12-31
      • 2012-10-25
      • 2017-05-24
      • 1970-01-01
      相关资源
      最近更新 更多