我正在iOS 12上使用ARKit。当前,我已经创建并保存了添加的ARAnchor及其对应的SCNNode的列表。现在,我尝试检测何时在当前会话框架中渲染锚点/节点(即何时它们出现在屏幕上)。
我在文档中几乎遍及所有地方,除了session(_:didUpdate:)
之外找不到其他合适的内容。我试图遍历frame.anchors
并也保存在ARAnchor列表中并打印一些内容
func session(_ session: ARSession, didUpdate frame: ARFrame) {
DispatchQueue.main.async {
self.updateMappingState(frame.worldMappingStatus)
}
if isGameStarted {
for anchor in frame.anchors where boxes[anchor] != nil {
let box = boxes[anchor]
print("Box found: \(box.) \(frame.timestamp)")
box?.flashAnchor()
flashFoundBox()
}
}
}
但是即使没有在屏幕上显示预期的定位点,它也会不停地打印Box found
。
我在这里错过了什么吗?还是有另一种方法?