我想在场景中设置一个参考点,并将物体放在离X轴上的参考点5米处。基本上,我想移动一个没有敲击手势的对象,只需要使用前面右边多少米,我的对象应该被放置。你能帮帮我吗?
答案 0 :(得分:0)
当您第一次运行ARSession
时,worldOrigin
设置为SCNVector3(0,0,0)
。
因此,您可以根据此确定初始参考点。
例如,将一个物体放置在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的操作如下:
因此,在我们的案例中,让我们使用类func:
move(to: SCNVector3, duration: TimeInterval)
这只是将我们的节点移动到一个新位置:
let moveAction = SCNAction.move(to: SCNVector3(1.5, 0, -1.5), duration: 5)
nodeToAdd.runAction(moveAction)
希望这能指出你正确的方向。