存取工作階段,建立空間化 UI 和實體

適用的 XR 裝置
本指南可協助您為這類 XR 裝置打造體驗。
XR 頭戴式裝置
有線 XR 眼鏡

Session 提供應用程式空間化功能的主要介面。每個空間化 Activity 都必須建立並保留 Session 的執行個體。應用程式建立工作階段後,可以使用 Session 介面建立空間化內容實體 (例如面板或 3D 模型),以及設定空間環境、識別使用者位置,以及將內容錨定至真實世界。

透過 Jetpack Compose for XR 存取工作階段

使用 Jetpack Compose for XR 時,系統會為您建立工作階段,並可使用 LocalSession.current 存取。請參閱以下範例:

@Composable
fun ComposableUsingSession() {
    val session = LocalSession.current
}

透過 Jetpack XR 執行階段存取工作階段

如果您要從 Jetpack SceneCore 程式庫建立空間化實體,則需要建立工作階段。

如要建立工作階段,請將 Context 傳遞至 create() 方法。這個 Context 可以是沉浸式 XR 裝置或行動裝置上的 Activity,也可以是智慧眼鏡上的投影情境。

建立 ARCore 工作階段可能會耗用大量資源,因此應在背景處理,如以下範例所示:

lifecycleScope.launch {
    when (val result = Session.create(context)) {
        is SessionCreateSuccess -> {
            val xrSession = result.session
            // ...
        }
        else ->
            TODO(/* A different unhandled exception was thrown. */)
    }
}

create() 函式可使用選用的 LifecycleOwner 參數,讓工作階段的生命週期由不同的 LifecycleOwner 管理。LifecycleOwner 必須在提供的結構定義範圍內開始和結束其生命週期,否則 Session 可能容易發生洩漏。

另請參閱