Jetpack XR 適用的 ARCore

運用感知功能,將數位內容帶入真實世界。
最近更新時間 穩定版 候選版 Beta 版 Alpha 版
2024 年 12 月 12 日 - - - 1.0.0-alpha01

宣告依附元件

如要為 Jetpack XR 新增 ARCore 依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區

在應用程式或模組的 build.gradle 檔案中,新增所需構件的依附元件:

Groovy

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha01")
}

如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。

意見回饋

您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。

建立新問題

詳情請參閱 Issue Tracker 說明文件

1.0 版本

1.0.0-alpha01 版

2024 年 12 月 12 日

發布 androidx.xr.arcore:arcore-* 1.0.0-alpha01

初始版本的功能

ARCore for Jetpack XR 程式庫受到現有 ARCore 程式庫的啟發,提供將數位內容與真實世界融合的功能。這個程式庫包含動作追蹤、持續性錨點、命中測試,以及平面識別功能,並提供語義標記 (例如地板、牆壁和桌面)。請參閱開發人員指南,進一步瞭解如何使用 ARCore for Jetpack XR。

  • Session:Jetpack XR 適用的 ARCore 會在幕後使用 Jetpack XR 執行階段,以提供其功能。您將使用工作階段與大多數 ARCore for Jetpack XR API 互動,因此請參閱相關說明文件。

  • Plane:使用平面圖瞭解周遭環境。每個平面都有一個 Label,用於說明其語義。您可以使用 subscribe 接收最新偵測到的平面通知,也可以使用 state 接收特定平面的變更通知。

  • Anchor:虛擬物件與實際位置之間的連結。錨點可附加至空間中的特定位置 (使用 create) 或 Trackable (使用 createAnchor)。

    • 錨點可在不同工作階段中重複使用。您可以使用 persist 儲存這些項目、使用 getPersistedAnchorUuids 列舉這些項目,以及使用 load 擷取這些項目。請務必在不再使用時 unpersist 這些檔案。

    • 錨點可在 Jetpack XR 適用的 ARCore 和 Jetpack SceneCore 之間互通。您可以使用錨點建立 AnchorEntity,如果您有現有的 AnchorEntity,則可以使用 getAnchor 擷取其備用錨點。

    • 使用 hitTest 提供自然的使用者互動。命中測試會使用 Ray 判斷與其相交的內容,並從該位置建立 Anchor。建議您從 InputEvent 執行命中測試。

已知問題

  • 呼叫 unpersist 與從 getPersistedAnchorUuids 傳回的結果中移除其 UUID 之間可能會有延遲。

  • create 不會驗證系統是否有足夠的資源來傳回新的錨點。建立過多錨點可能會導致應用程式當機。

  • 目前不支援儲存先前已儲存及未儲存的錨點。

  • 雖然支援在模擬器中使用,但行為可能不如在實際裝置上執行時穩定。特別是,呼叫 create 可能會因原生程式碼錯誤而失敗,並立即終止活動。

  • 在某些情況下,呼叫 persist 時,RuntimeException 可能會因「Anchor was not persisted」訊息而錯誤拋出。在這種情況下,函式仍會成功執行,且錨點會保留。建議您使用 try 區塊包裝對 persist 的呼叫,做為替代方案。