使用触摸在SceneKit中移动特定节点

我有一个有多个节点的场景。 我想通过点击它来选择一个节点(如果我点击什么,我什么都不想发生)并让他只在XY轴上跟随我的手指(我知道Z轴上的位置)。 有没有任何方法可以将视图中的位置转换为SceneKit coords?

经过一些研究我发现了这个,这正是我想要的,但我没有得到代码。 有人可以解释我或帮我解释如何解决我的问题? https://www.youtube.com/watch?v=xn9Bt2PFp0g

func CGPointToSCNVector3(view: SCNView, depth: Float, point: CGPoint) -> SCNVector3 { let projectedOrigin = view.projectPoint(SCNVector3Make(0, 0, depth)) let locationWithz = SCNVector3Make(Float(point.x), Float(point.y), projectedOrigin.z) return view.unprojectPoint(locationWithz) } 

看起来很简单,我做了一个获得3个参数的函数。 View是连接场景的SCNView,depth是节点的z值,point是表示3D场景在屏幕上投影的CGPoint。