swift - 如何摆脱这个是错误的。它在“守卫”之后显示预期的“{”
问题描述
我正在尝试创建一个 AR 应用程序,用网格替换你的脸。但是,我一直遇到这个错误。
完整的代码是: -
import PlaygroundSupport
import ARKit
class ARViewController:UIViewController{
lazy var arView = ARSCNView(frame: UIScreen.main.bounds)
override func viewDidLoad() {
guard ARFaceTrackingConfiguration.isSupported else{fatalError()}
arView.delegate = self
}
override func viewDidAppear(_ animated: Bool) {
super.viewWillAppear(animated)
setupARView()
}
override func viewWillAppear(_ animated: Bool) {
arView.session.pause()
}
func setupARView(){
//Step 1: Create a new scene
let scene = SCNScene()
arView.scene = scene
//Step 2: Configure session for tracking
let config = ARFaceTrackingConfiguration()
arView.session.run(config)
// Step 3: Assign arView to vc view
self.view = arView
}
}
extension ARViewController: ARSCNViewDelegate{
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
guard let faceAnchor = anchor as? ARFaceAnchor, let device = render.device else(return nil)
let faceGeometry = ARSCNFaceGeometry(device:device)
let node = SCNNode(geometry: faceGeometry)
node.geometry?.firstMaterial?.fillMode = .lines
return node
}
func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
guard let faceAnchor = anchor as? ARFaceAnchor, let faceGeometry = node.geometry as? ARSCNFaceGeometry else {return}
faceGeometry.update (from: faceAnchor.geometry)
}
}
PlaygroundPage.current.liveView = ARViewController()
PlaygroundPage.current.needsIndefiniteExecution = true
请帮助我,因为我离实现我想做的事情只有一步之遥。如果您对您的解决方案进行解释,我们将不胜感激!
解决方案
当你在你的方法中返回时,你正在使用(
而不是。它应该如下所示:{
renderer
func renderer(_ renderer: SCNSceneRenderer, nodeFor anchor: ARAnchor) -> SCNNode? {
guard let faceAnchor = anchor as? ARFaceAnchor, let device = render.device else { return nil }
let faceGeometry = ARSCNFaceGeometry(device:device)
let node = SCNNode(geometry: faceGeometry)
node.geometry?.firstMaterial?.fillMode = .lines
return node
}
推荐阅读
- ionic-framework - 如何在 IonicFramework 中选择特定的数组对象?
- java - org.springframework.orm.ObjectOptimisticLockingFailureException 与 microsoft 驱动程序而不是 jtds 驱动程序
- python - Python Zillow API 调用
- three.js - 将对象添加到场景后如何更新宽度、高度?三.PlaneGeometry(width,height,1,1)
- cxf - 具有 NTLM 身份验证的 Maven cxf-codegen-plugin - 因 java.io.IOException 失败:服务器返回 HTTP 响应代码:URL 为 401
- algorithm - 处理代表大树分支的小树
- php - PHP 使用 simpleXML 解析 XML url
- python - 在 Windows 10 上卸载 Anaconda 后,我应该删除哪些文件夹?
- node.js - 不存在“Access-Control-Allow-Origin”标头。角度 7 并表示
- objective-c - Mac 的 smslib(突然运动传感器)不工作