ARKit - 创建世界边界/获得可见平面边缘的位置?

时间:2018-02-19 17:29:27

标签: swift swift3 scenekit arkit

好吧,我想要做的是在我的SceneKit游戏中使用ARKit为我的角色,我的SCNNode创建物理体/碰撞边界。这样我的节点就无法移出用户的视野/走得太遥远,以至于它目前无法看到。我的SCNNode被用户输入移动,所以我需要制作"世界边界"虽然ARKit仍然没有垂直墙检测

我知道你可以在现实世界中将物体放置在你前面一定距离Understand coordinate spaces in ARKit 我已经这样做了,只需在这里制作一个带有物理体的盒子 -

let box = SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0) //change to be VERY TALL - need to make it a giant room
        node.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.static, shape: nil)
        box.firstMaterial?.diffuse.contents = UIColor.red
        box.firstMaterial?.isDoubleSided = true
        node = SCNNode(geometry: box)
node.position = SCNVector3(view.pointOfView.simdWorldFront + float3(0, 0, -0.5)) //random distance ahead

这是有效的,我可以将其添加为相机的子节点,以便在用户移动时移动,但我不认为我这样做是正确的。

基本上我需要4个墙来装入用户/ SCNNode(corral the character)无限高,并且在用户可以看到的水平平面的非常边缘。真的,我不知道这个距离应该在x平面上是什么:

+ float3(0, 0, -0.5)

你会如何创建这样的AR边界?

0 个答案:

没有答案