在两段 Swift 代码之间进行交互(Apple ARKit 示例代码)



Apple在这里发布了一些"创建基于面部的AR体验"的示例代码。

我的问题涉及在两段代码之间传递变量。 在 RobotHead 中.swift我想检测 blendShapes 中的条件,并以某种方式将其传递回 ViewController.swift以便 ViewController 中的代码可以对该条件做出反应。 最简单的方法是什么? 谢谢。

你可以

做的一件事是在ViewController类中创建一个公共函数,将视图控制器传递给VirualContentUpdater,然后从其renderer(:didUpdate:for)函数调用该方法。

ViewController.swift

override func viewDidLoad() {
    contentUpdater.viewController = self
    /* ... */
}
public func update(withFaceAnchor anchor: ARFaceAnchor) {
    // do something with anchor.blendShapes
}

VirtualContentUpdater.swift

public var viewController: ViewController?
func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
    viewController?.update(withFaceAnchor: anchor)
    /* ... */
}

相关内容

最新更新