2017-07-12 5 views
3

アプリ(タブ付きアプリケーション)でiOS 11ベータ版のARKitを実装しようとしています。しかし、ARKit Session Paused and Not Resumingスレッドで述べたように、タブを別のView Controllerに変更して戻ってくると、ARSessionがフリーズして再開しなくなります。ARSessionをフリーズせずにTabviewコントローラにARSCNViewを置く方法は?

ARSCNViewをタブ付きアプリケーションに実装することは可能ですか?戻る場合は、ARSessionを再開できるようにしますか?もしそうなら、それを行う方法?ビューが消えます

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    let configuration = ARWorldTrackingSessionConfiguration() 
    sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors]) 
} 
override func viewWillDisappear(_ animated: Bool) { 
    super.viewWillDisappear(animated) 
    sceneView.session.pause() 
} 

停止セッションを、そしてアンカーをクリアし、ビューが表示されますときのトラッキングをリセットすると、セッションを再実行します。

答えて

5

はい、できます。また、ASCNViewの表示と消滅を避けるために、ポップアップ・ビュー・コントローラーを使用することをお勧めします。 Appleはそのdemo project

+3

うんでそれらのポップオーバー画面をどうやっ

は、より良いユーザーエクスペリエンスについては、を参照してください。 「フリーズ」問題を修正しても、別の全画面表示コントローラを終了して戻ってくると、ユーザーのARエクスペリエンスを最初からやり直すことになります。 ARビューを実行し続けるためにポップオーバーなどを使用したり、経験を残しておく必要がないようにアプリケーションを設計したりすることをおすすめします。 – rickster

+0

@rickster 100%同意すると、アップルはそれらのポップオーバーで良いデモを持っていますhttps://developer.apple.com/sample-code/wwdc/2017/PlacingObjects.zip –

+1

@VasiliiMuravevはい私はappleと同じサンプルコードを使用していますviewWillDisappearでsceneview.session.pauseも実装しています。しかし、まだ私がタブを変更して再び来たら、セッションはフリーズします。 – yaali

関連する問題