AR kit ImageTracking - トラッキング画像が画面外に出たことを検出
デリゲートメソッド didUpdate
に以下のように書く。
didUpdate
はARAnchorが更新される(TrackingImageの座標が変化する)間、呼ばれ続けるデリゲートメソッドである。
TrackingImageが画面外から出ると当時に、ARAnchorは更新されなくなり、このデリゲートメソッドは呼ばれなくなる。
が、画面外に出る瞬間までは、ARanchorがアップデートされるので、Trackingが終わる瞬間が最終アップデートになる。
つまり、以下のコードでは、TrackingImageが画面外に出た時に一度だけPrintされる。
func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) { if let imageAnchor = anchor as? ARImageAnchor{ if !imageAnchor.isTracked { print(imageAnchor.referenceImage.name) //画面外に出たTrackingImageの名前をPrint } } }