【发布时间】:2023-03-27 02:32:01
【问题描述】:
我们使用 ARKit 来检测水平和垂直平面。当用户点击屏幕上的某个位置时,它会使用 hittest 函数获取世界坐标并将 3D 对象放置在该特定位置。现在我想要的是检测最近检测到的飞机是垂直还是水平的飞机类型?
ARKit 会话配置为:
let configuration = ARWorldTrackingConfiguration()
configuration.planeDetection = [.vertical, .horizontal]
sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])
这就是我们放置 3D 对象的方式:
let sceneView = tapGesture.view as! ARSCNView
let location = tapGesture.location(in: sceneView)
let result = sceneView.hitTest(location, types: .existingPlane).first
guard let hitResult = result else {
debugPrint("Unable to get hit result")
return
}
let position = SCNVector3(hitResult.worldTransform.columns.3.x,
hitResult.worldTransform.columns.3.y,
hitResult.worldTransform.columns.3.z)
addNode(position: position)
我们正在使用 Xcode:9.3 测试版
【问题讨论】: