在ARKit中,有一个ARSessionDelegate
协议,该协议具有4种主要方法,您可以实现这些方法来从AR会话接收捕获的视频帧图像和跟踪状态。
ARCore API是否具有使用类似方法的类似协议(接口)?
protocol ARSessionDelegate
override func viewDidLoad() {
super.viewDidLoad()
sceneView.session.delegate = self
}
- 此方法向代理提供新捕获的ARCamera图像和随附的AR信息:
func session(ARSession, didUpdate: ARFrame) { ... }
- 此方法告诉代表该会话已添加一个或多个ARAnchor:
func session(ARSession, didAdd: [ARAnchor]) { ... }
- 此方法告诉委托人,ARSession已调整了一个或多个ARAnchors的属性:
func session(ARSession, didUpdate: [ARAnchor]) { ... }
- 此方法告诉委托人已从ARSession中删除一个或多个ARAnchor:
func session(ARSession, didRemove: [ARAnchor]) { ... }
如果ARCore中存在类似的方法(甚至不是全部),请告诉我使用Kotlin代码的样子。
任何帮助表示赞赏。
答案 0 :(得分:1)
浏览了ARCore文档后,我发现了至少两种类似的方法:
第一:该方法用于接收新的摄像机帧,更新设备的位置,更新跟踪锚的位置,更新检测到的平面等。
ArStatus ArSession_update(ArSession *session, ArFrame *out_frame)
第二:此方法定义了物理世界中的跟踪位置:
ArStatus ArSession_acquireNewAnchor(ArSession *session, const ArPose *pose, ArAnchor **out_anchor)