現在、パンジェスチャー認識機能を使用してシーンキットのノードを移動しようとしています。私は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でこの仕事を取得しようとしていることをやっていますシナリオですが、ノードを正しく動かすためにすべてを取り除きましたが、まだ問題があります。
panはARSCNViewに追加されますが、私が操作しようとしているノードはARSCNView.scene.rootNodeにchildNodeとして追加されていますので、問題の位置/座標であるか疑問に思っています。
ああ、どうやってそこに変換を行うのですか?私は主にSpriteKitで作業しましたが、このコードをどこから変換しようとしているのですか? – TommyBs
@TommyBs更新された回答を参照 –
'unprojectPoint'の' SCNVector'の 'Z'は深さです。 。 –