【发布时间】:2020-02-05 10:08:12
【问题描述】:
在我的渲染器委托中,我从视图中心创建了一个光线投射查询,以跟踪估计的平面并显示一个跟随光线投射结果的 3D 指针。
它是通过view.raycastQuery(from:allowing:alignment:) 完成的,但返回 nil。
我的问题是为什么?没有文档说明为什么这个函数会返回一个 nil 值。我知道光线投射结果可能为空,但为什么不会创建查询?
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
guard view.session.currentFrame?.camera.trackingState == .normal else {
return
}
DispatchQueue.main.async {
let center = view.center
DispatchQueue.global(qos: .userInitiated).async {
if let query = view.raycastQuery(from: center, allowing: .estimatedPlane, alignment: .any) {
let results = view.session.raycast(query)
...
}
else {
// sometimes it gets here
}
}
}
}
【问题讨论】:
标签: swift augmented-reality scenekit arkit hittest