我的位置是相同的,但是节点不在同一位置吗?

时间:2019-04-14 23:55:28

标签: ios swift iphone scenekit

在我的SceneKit场景中,我有一个节点,该节点是玩家要与之交互的球和一个摄像头,摄像头是一个名为“ selfieStick”的对象的子对象,该对象将跟随该球并提供如下内容:相机将球聚焦的框架。在实现此功能时,我将使用以下代码进行操作:

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

    selfieStickNode?.position = ballPosition!
}

但是当我运行游戏并轻按球(使其向前跳)时,自拍杆和球会相互朝着两个不同的方向……打开场景检查器并进入场景后,我会检查位置球和seflieStick的所有位置和位置都应该是相同的。...但是节点不在场景中的同一位置...下面的屏幕快照。

side angle selfieStick selected Ball in relation to selfieStick

1 个答案:

答案 0 :(得分:0)

我想出来了...由于某种原因,每次自拍杆都沿相反的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
}