在轴上移动x米的虚拟对象。 ARKIT Swift

时间:2018-03-19 15:49:43

标签: arkit

我想在场景中设置一个参考点,并将物体放在离X轴上的参考点5米处。基本上,我想移动一个没有敲击手势的对象,只需要使用前面右边多少米,我的对象应该被放置。你能帮帮我吗?

1 个答案:

答案 0 :(得分:0)

当您第一次运行ARSession时,worldOrigin设置为SCNVector3(0,0,0)

enter image description here

因此,您可以根据此确定初始参考点。

例如,将一个物体放置在XAxis的右侧1m,YAxis上的0m和远离相机的-1.5将如下所示:

 let nodeToAdd = SCNNode()
 let nodeGeometry = SCNBox(width: 0.2, height: 0.2, length: 0.2, chamferRadius: 0)
 nodeGeometry.firstMaterial?.diffuse.contents = UIColor.cyan
 nodeToAdd.geometry = nodeGeometry
 nodeToAdd.position = SCNVector3(1, 0, -1.5)
 augmentedRealityView.scene.rootNode.addChildNode(nodeToAdd)

然后,您可以通过多种方式移动SCNNode;一个非常简单的方法是使用SCNAction

  

一个简单的,可重复使用的动画,可以更改您附加到的任何节点的属性。

移动SCNNode的操作如下:

enter image description here

因此,在我们的案例中,让我们使用类func:

 move(to: SCNVector3, duration: TimeInterval)

这只是将我们的节点移动到一个新位置:

let moveAction = SCNAction.move(to: SCNVector3(1.5, 0, -1.5), duration: 5)
nodeToAdd.runAction(moveAction)

希望这能指出你正确的方向。