【发布时间】:2018-03-21 19:04:54
【问题描述】:
我想在场景中设置一个参考点,并将对象放置在距离示例中 X 轴上的参考点 5 米处。基本上,我想在没有点击手势的情况下移动一个对象,并且只使用前面多少米,对,我的对象应该被放置。你能帮帮我吗?
【问题讨论】:
标签: arkit
我想在场景中设置一个参考点,并将对象放置在距离示例中 X 轴上的参考点 5 米处。基本上,我想在没有点击手势的情况下移动一个对象,并且只使用前面多少米,对,我的对象应该被放置。你能帮帮我吗?
【问题讨论】:
标签: arkit
当您第一次运行 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)
希望这会为您指明正确的方向。
【讨论】: