適用於 Unity 的 Google Cardboard 快速入門導覽課程

本指南說明如何使用 Unity 專用 Google Cardboard XR 外掛程式,為 Unity 建立自己的虛擬實境 (VR) 體驗。

您可以使用 Cardboard SDK 將手機轉換為 VR 平台。行動裝置可透過立體轉譯功能顯示 3D 場景、追蹤及回應頭部動作,並在偵測到使用者按下檢視器按鈕時與應用程式互動。

如要開始使用,您將使用 HelloCardboard,這是一個示範遊戲,可展示 Cardboard SDK 的核心功能。在遊戲中,使用者會在虛擬世界中四處尋找並收集物品。說明如何執行下列操作:

  • 設定開發環境
  • 下載並建構試用版應用程式
  • 掃描 Cardboard 觀影盒的 QR code,儲存其參數
  • 追蹤使用者的頭部動作
  • 為每隻眼睛設定正確的扭曲,以算繪立體圖像
  • 開啟或關閉 VR 模式

設定開發環境

軟體需求:

  • Unity 2021.3.44f1 以上版本
    • 請務必在安裝期間加入 Android 和 iOS 建構支援。
    • 請務必安裝 44f1 以上版本的修補程式。
  • 您必須安裝 Git,且 git 執行檔必須位於 PATH 環境變數中。詳情請參閱 Unity 的套件管理工具 Git 支援說明文件。

匯入 SDK 並建立新專案

請按照下列步驟匯入 Unity SDK 並建立新專案。

  1. 開啟 Unity,並建立新的 3D 專案。
  2. 在 Unity 中,依序前往「Window」 >「Package Manager」
  3. 按一下 +,然後選取「Add package from git URL」
  4. https://github.com/googlevr/cardboard-xr-plugin.git 貼到文字輸入欄位。
    套件應新增至已安裝的套件。
  5. 前往 Unity 適用的 Google Cardboard XR 外掛程式套件。在「Samples」部分,選擇「Import into Project」
    範例素材資源應載入至 Assets/Samples/Google Cardboard/<version>/Hello Cardboard

設定 HelloCardboard 情境

  1. 前往 Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes,選取「Add Open Scenes」,然後選擇「HelloCardboard」,開啟範例場景。
  2. 開啟「圖層」選單,然後選取「編輯圖層...」
  3. 定義名為「Interactive」的新圖層。
  4. 按一下「Treasure」遊戲物件,開啟「Inspector」視窗。將其圖層設為「Interactive」。如果畫面上顯示彈出式視窗,詢問您是否要將圖層設為所有子項物件的互動式,請按一下「是,變更子項」。
  5. 依序按一下「Player」>「Camera」>「CardboardReticlePointer」遊戲物件,開啟「Inspector」視窗。在「Cardboard 十字準星指標」指令碼中,選取「互動式」做為「十字準星互動層遮罩」

設定 Android 建構設定

依序前往「File」 >「Build Settings」

  1. 選取「Android」,然後選擇「Switch Platform」
  2. 選取「Add Open Scenes」,然後選擇「HelloCardboard」

播放器設定

依序前往「Edit」 >「Project Settings...」

設定解析度和呈現設定

依序前往「Player」 >「Resolution and Presentation」

  1. 將「預設方向」設為「橫向左」或「橫向右」
  2. 停用「最佳化影格使用速度」

調整其他設定

依序前往「Player」 >「其他設定」

  1. 圖形 API 中選擇 OpenGLES2OpenGLES3Vulkan,或任意組合。
  2. 在「Minimum API Level」中選取 Android 8.0 'Oreo' (API level 26) 以上級別。
  3. 在「Target API Level」中選取 API level 33 以上版本。
  4. 在「Scripting Backend」中選取 IL2CPP
  5. 在「Target Architectures」中選擇 ARMv7ARM64,或兩者皆選,即可選取所需的架構。
  6. 在「網路存取」中選取 Require
  7. 在「Active Input Handling」中選取 Input System Package (New)
  8. 在「Package Name」下方指定公司網域。
  9. 如果您選取 Vulkan 做為 Graphics API
    • Vulkan 設定中,取消勾選「在算繪時套用畫面旋轉設定」核取方塊。
    • 如果 Unity 版本為 2021.2 以上版本,請在「Texture compression format」中選取 ETC2
  10. 如果 Unity 版本為 2023.1 以上,請在「Application Entry Point」中選取 Activity 並清除 GameActivity

設定發布設定

依序前往「Player」 >「發布設定」

  1. 在「Build」部分中,選取 Custom Main Gradle TemplateCustom Gradle Properties Template
  2. Assets/Plugins/Android/mainTemplate.gradle 的依附元件部分中加入下列行:

      implementation 'androidx.appcompat:appcompat:1.6.1'
      implementation 'com.google.android.gms:play-services-vision:20.1.3'
      implementation 'com.google.android.material:material:1.12.0'
      implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
    
  3. Assets/Plugins/Android/gradleTemplate.properties 中新增下列指令行:

      android.enableJetifier=true
      android.useAndroidX=true
    

設定 XR 外掛程式管理設定

前往「XR Plug-in Management」

  1. 選取「外掛程式供應商」下方的 Cardboard XR Plugin

建構您的專案

依序前往「File」 >「Build Settings」

  1. 選取「Build」,或選擇裝置並選取「Build and Run」

設定 iOS 專案

依序前往「File」 >「Build Settings」

  1. 選取「iOS」,然後選擇「Switch Platform」
  2. 選取「Add Open Scenes」,然後選擇「HelloCardboard」

播放器設定

依序前往「Edit」 >「Project Settings...」

設定解析度和呈現設定

依序前往「Player」 >「Resolution and Presentation」

  1. 將「預設方向」設為「橫向左」或「橫向右」

調整其他設定

依序前往「Player」 >「其他設定」

  1. 在「相機使用說明」中,輸入 Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
  2. 在「Target minimum iOS Version」中,輸入 12.0
  3. 在「Package Name」下方指定公司網域。
  4. 在「Defer system gestures on edges」中檢查 Top EdgeLeft EdgeRight Edge

設定 XR 外掛程式管理設定

前往「XR Plug-in Management」

  1. 選取「外掛程式供應商」下方的 Cardboard XR Plugin

建構您的專案

依序前往「File」 >「Build Settings」

  1. 選取「Build」或「Build and Run」

重新置中

Cardboard SDK 可讓您使用 Recenter() 重新調整頭部追蹤器。

如要使用範例應用程式試用這項功能,請按照下列步驟操作:

  1. 將裝置移至要重新調整的位置 (用作新的正面頭部姿勢)。
  2. 按住 Cardboard 裝置的扳機至少三秒鐘。
  3. 放開扳機。
  4. 初始姿勢現在位於相機指向的方向。

開啟或關閉 VR 模式

Unity XR 外掛程式管理 API 可讓您為 適用於 Unity 的 Google Cardboard XR 外掛程式開啟或關閉 VR 模式。您可以在 Unity 的使用者說明文件中,查看使用者說明文件和使用範例。

HelloCardboard 範例中的 VrMode 場景會示範上述 API 的基本用法。在這個情境中,只要輕觸「exit」X 按鈕,即可關閉 VR 模式,只要輕觸螢幕上的任何位置,即可再次開啟。如要進一步瞭解執行方式,請查看 VrModeController.cs

後續步驟