操作說明

開始使用 Unity 和 Android XR

閱讀時間:6 分鐘
Luke Hopkins
Android 開發人員關係工程師

Samsung Galaxy XR 登場,搭載 Android XR!這篇網誌文章是 Android XR Spotlight Week 的一部分,我們將提供網誌文章、影片、程式碼範例等資源,協助您學習、建構及準備 Android XR 應用程式。

現在正是投入 XR 開發的最佳時機。去年 12 月,我們宣布推出 Android XR,這是 Google 全新的 Android 平台,以 OpenXR 和 Vulkan 等開放標準為基礎,讓 XR 開發比以往更加容易。


結合 Unity 現有的 XR 工具,即可獲得功能強大且成熟的開發堆疊。因此,您可以建立及部署適用於多部裝置的 XR 應用程式。

openxr_face_tracking2.webp

無論您是否曾開發 XR 軟體,我們都希望協助您踏出第一步。

這篇網誌將說明如何開始使用 Android XR 和 Unity 開發軟體。我們將著重於設定環境、瞭解套件生態系統,以及開始建構的實用步驟。

閱讀完這篇網誌後,您將充分瞭解:

  • 套件生態系統
  • 必要設定步驟
  • 輸入法
  • 隱私權和權限
  • 合成層

使用 Unity 開發 Android XR 應用程式

您可能會選擇 Unity,是因為它具備跨平台相容性,可讓您建構一次,就能部署到 Android XR 和其他 XR 裝置。

使用 Unity 時,您可享有成熟的 XR 生態系統和工具。Unity 已經有許多成熟的套件,例如 XR Interaction ToolkitOpenXR 外掛程式XR composition layersXR Hands,以及包含大量 XR 適用元件和範本的資產商店,還有 XR 模擬和測試工具。此外,自去年 11 月發布 Unity 6 以來,您還能享有改良的 Universal Render Pipeline (URP) 效能、更完善的 Vulkan 圖像支援,以及強化版建構設定檔。

以下列舉幾個範例專案,讓您瞭解可執行的操作:

基本設定:開發基礎

Unity 6 需求條件和安裝

您必須使用 Unity 6 建立應用程式,因為舊版不支援 Android XR。請先安裝 Unity Hub,然後按照這些步驟安裝 Unity 6 和 Android Build Support 模組。

unity6.png

Android XR 建構設定檔:簡化設定

Unity 建構設定檔是專案資產,可儲存平台專屬設定和配置。因此,您不必在多個選單中手動設定 15 到 20 種不同的設定,而是可以使用建構設定檔自動完成這項作業。
您可以建立自己的建構設定檔,但目前建議使用我們建立的專屬 Android XR 建構設定檔。

如要選取建構設定檔,請在 Unity 專案中依序選取「File」>「Build Profile」。如需完整操作說明,請參閱「 為 Android XR 開發」工作流程頁面。

如果您自行進行任何變更,可以建立新的建構設定檔,然後與團隊共用。這樣就能確保所有建構體驗一致。

buildprofiles.png

完成這些步驟後,您就可以為 Android XR 裝置建構及執行 APK。

圖形 API:Vulkan 的重要性

使用 Android XR 建構設定檔設定 Unity 專案後,建議先確認 Vulkan 已設為圖形 API。Android XR 是以 Vulkan 為優先的平台,Google 於 2025 年 3 月宣布,Vulkan 現在是 Android 的官方圖形 API。這是新一代的低階圖形 API,可協助開發人員充分發揮新一代 GPU 的效能,並解鎖光線追蹤和多執行緒等進階功能,打造逼真且身歷其境的遊戲畫面。

這些標準可為現有應用程式提供最佳相容性,並減少移植問題和相關費用。並啟用進階 Android XR 功能,例如 URP 應用程式空間扭曲凹凸成像

Unity 6 會自動處理 Vulkan,因此當您使用 Android XR 建構設定檔時,Unity 會將 Vulkan 設定為圖形 API。這樣一來,您就能存取所有 Android XR 進階功能,不必手動設定。

如要驗證圖形 API 設定,請依序前往「Edit」>「Project Settings」>「Player」>「Android tab」>「Other settings」>「Graphics APIs」。

appentrypoint.png

瞭解套件生態系統

您可以在 Unity 中使用兩種不同的 Android XR 套件。方法有兩種:使用 Unity 的 Android XR 擴充功能,以及使用 Unity OpenXR:Android XR 套件。

這兩者聽起來可能一樣,但請耐心聽我說明

Unity OpenXR:Android XR 套件是官方的 Unity 套件,可支援 Android XR。這項外掛程式提供大部分的 Android XR 功能,並透過 OpenXR 標準提供。此外,這項功能還支援整合 AR Foundation,提供混合實境功能。使用 Unity OpenXR:Android XR 套件的主要優點是提供統一的 API,可支援 XR 裝置。


Android XR Extensions for Unity 是 Google 的 XR 套件,專為開發 Android XR 裝置應用程式而設計。除了 Unity OpenXR 套件外,還提供環境混合模式、場景網格化、圖像追蹤和身體追蹤等額外功能。但缺點是只能開發 Android XR 裝置專用的應用程式。


選擇哪一個取決於您的具體需求,但我們一般建議使用 Unity OpenXR:Android XR,因為這樣一來,應用程式可相容的裝置會更多,然後您可以根據應用程式需求新增 Android XR Extensions for Unity。

如何安裝套件

如要新增套件,請在 Unity 中開啟專案,然後依序選取「Window」>「Package Management」>「Package Manager」。

您可以在「Unity Registry」分頁中安裝這些套件:

packagemanager.png

如要透過 GitHub 安裝 Android XR for Unity 套件,請選取 ➕ 圖示,然後選取「Install package from git URL」(從 Git 網址安裝套件),接著輸入「https://github.com/android/android-xr-unity-package.git」

packagemanager2.png

必要 OpenXR 功能

現在您已安裝所需套件,接下來請啟用一些核心功能,讓專案順利運作。

您可以為 Android 啟用 OpenXR 設定:依序點選「Edit」->「Project Settings」->「XR Plugin Management」,然後按一下 Android 並啟用 OpenXR

xrpluginmgmt.png

接著,我們需要啟用「Android XR 支援」,其他 OpenXR 功能則視需要再啟用。目前只需啟用 Android XR 支援功能。

輸入

Android XR 支援手部、語音、眼動追蹤、鍵盤和控制器輸入。建議您安裝 XR Interaction ToolkitXR Hands,因為這些工具包內含最適合入門的預先建構項目。使用這些預先建構的項目,即可在應用程式中支援手部和控制器。

xrinteractiontoolkit.png

XR Hands 和 XR Interactive 工具包都安裝完成後,建議匯入 Starter Assets 和 Hands Interaction Demo。接著,您需要啟用「Hand Interaction」和「Khronos Simple Controller」設定檔,並開啟「Hand Tracking Subsystem」和「Meta Hand Tracking Aim」功能。

如要編輯這些設定,請依序前往「Edit」>「Project Settings」>「XR Plug-in Management」>「OpenXR」

profiles.png

我們也建議使用 Unity 的預先建構元件「XR Origin」,代表使用者在 XR 空間中的位置和方向。其中包含攝影機支架和追蹤元件,可從正確的視角算繪 XR 體驗。

如要新增這個預製物件,最簡單的方法是從先前匯入的手部整合示範匯入,位置如下:「Hands Integration Toolkit」(手部整合工具包) >「Hand Interaction」(手部互動) >「Prefabs」(預製物件) >「XR Origin」(XR 來源)

prefabs.png

建議您在遊戲物件中使用這個 Prefab,而非「XR Origin」選項,因為這個 Prefab 會使用 XR Input Modality Manager,自動在使用者手部和控制器之間切換。這樣才能順利切換手勢和控制器模式。

隱私權和權限:建立使用者信任感

無論您建構什麼,都必須從使用者擷取執行階段權限。這是因為場景理解、眼動追蹤、臉部追蹤和手勢追蹤功能會存取對使用者而言可能較為敏感的資料。

這些功能提供的個人資訊比傳統電腦或行動應用程式更深入,因此執行階段權限可確保使用者完全掌控要分享的資料。因此,為了遵守 Android 安全性和隱私權政策,Android XR 為每項功能都設有權限。

舉例來說,如果您使用 XR Hands 套件自訂手勢,就必須要求手勢追蹤權限 (請參閱下文),因為這個套件需要追蹤大量使用者手部資訊。包括追蹤手部關節姿勢,以及角速度和線速度;

注意:如要查看需要權限的擴充功能完整清單,請參閱 XR 開發人員網站的資訊。

  const string k_Permission = "android.permission.HAND_TRACKING";

#if UNITY_ANDROID
void Start()
{
    if (!Permission.HasUserAuthorizedPermission(k_Permission))
    {
        var callbacks = new PermissionCallbacks();
        callbacks.PermissionDenied += OnPermissionDenied;
        callbacks.PermissionGranted += OnPermissionGranted;
        
        Permission.RequestUserPermission(k_Permission, callbacks);
    }
}

void OnPermissionDenied(string permission)
{
    // handle denied permission
}


void OnPermissionGranted(string permission)
{
    // handle granted permission
}

#endif // UNITY_ANDROID

使用合成層提升影像品質

建議使用「組合層」轉譯 UI 元素。與 Unity 的標準算繪管道相比,這項功能可直接將所有內容算繪至平台的合成器,因此能以更高的品質顯示元素。

舉例來說,如果您顯示文字,標準 Unity 算繪功能更有可能導致文字模糊、邊緣柔和,以及出現視覺構件。但使用合成圖層時,文字會更清楚、輪廓會更銳利,整體體驗也會更好。


除了文字,影片、圖片和 UI 元素的畫質也大幅提升。方法是利用對執行階段合成器層的原生支援。

如要開啟合成層,請開啟套件管理工具,選取「Unity Register」,然後安裝「XR Composition Layers」。

建構及執行

安裝 OpenXR 套件並啟用功能後,您就可以使用手部和頭部動作的預先設定,建構場景並直接部署到頭戴式裝置進行測試。

後續步驟:拓展技能

您已設定 Android XR 開發環境並瞭解重要概念,接下來請按照下列步驟繼續 XR 開發之旅:

持續學習的必備資源:

可探索的範例專案:

撰寫者:

繼續閱讀