iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 6
0

昨天提到建立一個AR Session 首先需要的是configuration,
但只有這是不夠的,我們還需要知道目前這個session 的狀態, 這時候我們就需要使用ARSCNViewDelegate所提供的方法了

1. func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) { }
這個方法會在每次session,狀態變化的時後被觸發
2.func session(_ session: ARSession, didFailWithError error: Error) { trackingStatus = "Session Failure: \(error)" }
這個方法會在session發生error時被觸發
3. func session(_ session: ARSession, cameraDidChangeTrackingState camera: ARCamera) { switch camera.trackingState { case .notAvailable: print("Not avaialable") case .normal: print("All Good") case .limited(let reason): switch reason { case .excessiveMotion: print("Limited due to excessive motion") case .insufficientFeatures: print("Limited due to insufficient features") case .initializing: print("Initializing") case .relocalizing: print("Relocalizing") } } }
這個方法可以提供session tracking的state變化
4.func sessionWasInterrupted(_ session: ARSession) { print("Session Was Interrupted!") }
這個方法可以提供可以偵測session被中斷(例如使用者跳到其他APP), 此時適合儲存當前session上的操作
5. func sessionInterruptionEnded(_ session: ARSession) { trackingStatus = "Session Interruption Ended" }
這個方法可以提供可以偵測session從中斷回複, 此時適合重回保存的操作狀態


上一篇
談談AR Session-Part1
下一篇
談談AR Session-Part3
系列文
iOS 工程師要懂的AR 開發,利用ARKit 製作APP25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言