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)
/* ... */
}