首页 > 解决方案 > ARKit 头部倾斜检测 - iOS

问题描述

我想创建一个测验应用程序,用户可以通过向左或向右倾斜头部来回答问题以判断真假。

func renderer(_ renderer: SCNSceneRenderer,
              didUpdate node: SCNNode,
                  for anchor: ARAnchor) {


        if let faceAnchor = anchor as? ARFaceAnchor,
           let _ = node.geometry as? ARSCNFaceGeometry {
            
            
            if abs(faceAnchor.lookAtPoint.x) >= 0.17 {
                DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
                
                    self.falseButton.sendActions(for: .touchUpInside)
                }
                
                
                
            }
            
            if abs(faceAnchor.lookAtPoint.y) >= 0.17 {
                DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
                    self.trueButton.sendActions(for: .touchUpInside)
                }
            }
            
        }
    }

我在视图中有两个按钮(true&false),每次倾斜头部时我只想触发一次按钮的功能。上面的代码不起作用,因为lookAtPoint 给出了导致函数被多次触发的即时值。

当我的头部向右或向左有一定角度时,如何触发一次功能?

标签: iosswiftaugmented-realityarkit

解决方案


推荐阅读