条件绑定的初始化程序必须具有可选类型,而不是“SCNNode”ARKit

问题描述 投票:0回答:1
//ARFace geometry update
    func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
        guard let faceAnchor = anchor as? ARFaceAnchor,
              let contentController = faceAnchorAndContentControllers[faceAnchor],
              let contentNode = contentController.contentNode else {
            return
        }

遇到同样的问题。我应该在这里改变什么?

有人可以解释一下我的错误在哪里吗?

swift uikit arkit
1个回答
0
投票

可能是faceAnchorAndContentControllers[faceAnchor]字典没有返回可选的SCNNode,您需要按如下方式修改代码

struct Controller{
    let contentNode: SCNNode?
}

 var faceAnchorAndContentControllers : [ARFaceAnchor : Controller] = [:]

 func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
    guard let faceAnchor = anchor as? ARFaceAnchor,
          let contentController = faceAnchorAndContentControllers[faceAnchor],
          let contentNode = contentController.contentNode else {
        return
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.