如何在ARKit中判断检测到的节点是垂直还是水平的?

3

让我们创建一个ARWorldTrackingConfiguration实例,然后设置planeDetection属性为[.horizontal, .vertical],这将允许检测水平和垂直平面。

在委托方法中,如何知道检测到的平面是水平还是垂直呢?

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor)

1个回答

3

ARPlaneAnchor有一个alignment属性,可以描述:

检测到的平面相对于重力的一般方向。

因此,如果您想记录alignment,可以这样做:

func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor) {

        //1. Check We Have A Valid ARPlaneAnchor
        guard let planeAnchor = anchor as? ARPlaneAnchor else { return }

        //2. Get It's Alignment
        if planeAnchor.alignment == .horizontal{

            print("The ARPlaneAnchor Alignment == Horizontal")

        }else if planeAnchor.alignment == .vertical{

            print("The ARPlaneAnchor Alignment == Vertical")

        }

 }

希望这能帮助到您...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接