ARCore是否像ARKit一样具有会话的委托方法?

时间:2019-04-22 13:12:20

标签: augmented-reality arkit arcore

在ARKit中,有一个ARSessionDelegate协议,该协议具有4种主要方法,您可以实现这些方法来从AR会话接收捕获的视频帧图像和跟踪状态。

ARCore API是否具有使用类似方法的类似协议(接口)?

protocol ARSessionDelegate

override func viewDidLoad() {  
      super.viewDidLoad()
      sceneView.session.delegate = self
}
  
      
  1. 此方法向代理提供新捕获的ARCamera图像和随附的AR信息:
  2.   
func session(ARSession, didUpdate: ARFrame) { ... }
  
      
  1. 此方法告诉代表该会话已添加一个或多个ARAnchor:
  2.   
func session(ARSession, didAdd: [ARAnchor]) { ... }
  
      
  1. 此方法告诉委托人,ARSession已调整了一个或多个ARAnchors的属性:
  2.   
func session(ARSession, didUpdate: [ARAnchor]) { ... }
  
      
  1. 此方法告诉委托人已从ARSession中删除一个或多个ARAnchor:
  2.   
func session(ARSession, didRemove: [ARAnchor]) { ... }

如果ARCore中存在类似的方法(甚至不是全部),请告诉我使用Kotlin代码的样子。

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

浏览了ARCore文档后,我发现了至少两种类似的方法:

  

第一:该方法用于接收新的摄像机帧,更新设备的位置,更新跟踪锚的位置,更新检测到的平面等。

ArStatus ArSession_update(ArSession *session, ArFrame *out_frame)
  

第二:此方法定义了物理世界中的跟踪位置:

ArStatus ArSession_acquireNewAnchor(ArSession *session, const ArPose *pose, ArAnchor **out_anchor)