我正在尝试使用平移手势识别器移动scenekit中的节点。我只是沿x轴移动它,但是我的手势使对象进一步/更快地移动,然后它甚至应该只使用小手势。我不是100%肯定,我在做什么错在这里,但这里是我的手势识别代码:Scenekit平移手势移动节点太快
@objc func handlePan(pan:UIPanGestureRecognizer) {
if pan.state == .changed {
let translation = pan.translation(in: pan.view!)
node!.position = SCNVector3(x:node!.position.x + Float(translation.x), y:node!.position.y, z:node!.position.z)
pan.setTranslation(CGPoint.zero, in: pan.view!)
}
}
正如我所说的物体被移动时,它只是被以难以置信的速度和距离发射。效果几乎看起来是累积的。
我想这可能是,如果我没有重置我的移动手势识别翻译的情况下,但我做的是,这里
pan.setTranslation(CGPoint.zero, in: pan.view!)
我其实是想在ARKit得到这个工作场景,但我已经将所有这些都剥离出来,让一个节点正确移动,但我仍然遇到问题。
泛添加到ARSCNView,而我试图操作的节点作为childNode添加到ARSCNView.scene.rootNode,所以我想知道它是这些问题的位置/坐标。
啊对,我们怎么去做那里的转换呢?我主要在SpriteKit工作,这显然是我试图从 – TommyBs
@TommyBs转换这个代码的地方。更新回答 –
'SCNVector'中的'Z'代表'unprojectPoint' - 深度,可能为您的目的为零。 –