適用於 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」視窗。在「Carboard reticle pointer」指標指令碼中,選取「Interactive」做為「Reticle Interaction Layer Mask」

設定 Android 專案設定

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

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

播放器設定

解析度和呈現方式

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

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

其他設定

依序前往「Project Settings」 >「Player」 >「Other Settings」

  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 做為 圖形 API
    • 在「Vulkan 設定」中,取消勾選「在算繪時套用畫面旋轉設定」核取方塊。
    • 如果 Unity 版本為 2021.2 以上,請在「紋理壓縮格式」中選取 ETC2
  10. 如果 Unity 版本為 2023.1 以上,請在「Application Entry Point」中選取 Activity 並清除 GameActivity

發布設定

依序前往「Project Settings」 >「Player」 >「Publishing Settings」

  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 外掛程式管理設定

依序前往「Project Settings」 >「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」

播放器設定

解析度和呈現方式

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

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

其他設定

依序前往「Project Settings」 >「Player」 >「Other Settings」

  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」下方指定貴公司的網域。

XR 外掛程式管理設定

依序前往「Project Settings」 >「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 的基本用法。在這個情境中,只要輕觸「退出」圖示 ,即可關閉 VR 模式,只要輕觸螢幕上的任何位置,即可再次開啟。如要進一步瞭解執行方式,請查看 VrModeController.cs

後續步驟