【发布时间】:2018-02-09 07:45:11
【问题描述】:
我目前正在尝试使用平移手势识别器来移动 SceneKit 中的节点。我只是沿X 轴移动它,但是我的手势使对象移动得更远/更快,即使只使用小手势也是如此。我不是 100% 确定我在这里做错了什么,但这里是我的手势识别器的代码:
@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 而我尝试操作的节点作为 childNode 添加到 ARSCNView.scene.rootNode 所以我想知道这些的位置/坐标是否是问题所在。
【问题讨论】:
标签: ios scenekit augmented-reality arkit