在我的SceneKit场景中,我有一个节点,该节点是玩家要与之交互的球和一个摄像头,摄像头是一个名为“ selfieStick”的对象的子对象,该对象将跟随该球并提供如下内容:相机将球聚焦的框架。在实现此功能时,我将使用以下代码进行操作:
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
let ball = ballNode?.presentation
let ballPosition = ball?.position
selfieStickNode?.position = ballPosition!
}
但是当我运行游戏并轻按球(使其向前跳)时,自拍杆和球会相互朝着两个不同的方向……打开场景检查器并进入场景后,我会检查位置球和seflieStick的所有位置和位置都应该是相同的。...但是节点不在场景中的同一位置...下面的屏幕快照。
答案 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
}