Jetpack XR の ARCore を使用すると、アプリは低レベルのシーンの理解プリミティブとモーション トラッキングを使用して、拡張現実(AR)の基本コンセプトを操作できます。AR エクスペリエンスを構築する際に、平面データを使用するか、空間内の固定された場所にコンテンツを固定する必要がある場合は、Jetpack XR の ARCore を使用します。
Session
のライフサイクルについて
Jetpack XR の ARCore によってトラッキングされるすべてのオブジェクトには、Session
を介してアクセスする必要があります。アクティビティのライフサイクルと同様に、Session
オブジェクトにもライフサイクルがあり、アプリで Session
オブジェクトの機能をどのように使用しているかに応じて維持する必要があります。アプリに XR 対応のアクティビティが 1 つしかない場合は、ライフサイクル対応コンポーネントを使用して Session
のライフサイクルを処理することを検討してください。
Session
にアクセスする
Jetpack XR で ARCore を使用する場合は、Session
を作成する必要があります。
XR 用 Jetpack Compose を使用する場合は、LocalSession
を使用して、自動的に作成されたセッションにアクセスします。
セッションを再開する
セッションを再開するタイミングは、アプリが ARCore for Jetpack XR からの状態変化を処理する準備ができたときです。多くの場合、これはアクティビティの onResume()
コールバックで行われます。ただし、アプリではユーザー操作まで処理を遅らせる場合があります。
次のコード スニペットは、セッションを再開する例を示しています。
when (val result = session.resume()) { is SessionResumeSuccess -> { // Session has been created successfully. // Attach any successful handlers here. } is SessionResumePermissionsNotGranted -> { // Request permissions in `result.permissions`. } }
Session
が再開できない理由については、SessionResumeResult
をご覧ください。
セッションを一時停止する
アクティビティがバックグラウンドに移行したら、[Session.pause()
][Session.pause] を使用して Session
を一時停止します。セッションを一時停止すると、セッションが再開されるまでトラッキングが一時的に停止し、認識システムの状態が維持されます。
セッションを破棄する
Session
を完全に破棄するには、[Session.destroy()
][Session.destroy] を使用します。これにより、セッションで使用されているリソースが解放され、すべてのセッション状態が破棄されます。
関連ドキュメント
- Jetpack XR の ARCore を使用してアンカーを操作する
- Jetpack XR の ARCore を使用してプレーンを使用する
- Jetpack XR の ARCore を使用してハンド操作を行う