让我们创建一个ARWorldTrackingConfiguration实例,然后设置planeDetection属性为[.horizontal, .vertical],这将允许检测水平和垂直平面。
在委托方法中,如何知道检测到的平面是水平还是垂直呢?
func renderer(_ renderer: SCNSceneRenderer, didAdd node: SCNNode, for anchor: ARAnchor)
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")
}
}