我正在尝试在Session Delegate中返回先前创建的节点:
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
guard let planeAnchor = anchor as? ARPlaneAnchor else {return SCNNode()}
let anchorNode = sceneView.anchor(for: earthNode)
if anchorNode == nil || anchorNode == planeAnchor {
return earthNode
}
return nil
}
我正在尝试查看是否已经为我的节点分配了锚点,如果没有,则返回earthNode。
我的问题是let anchorNode = sceneView.anchor(for: earthNode)
要么冻结,要么无限循环。
我的工作理论是,这是因为earthNode
尚未放置在场景中。但这似乎是一个不可靠的解释。当然,我也假设我对ARkit的使用充满了无知。