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

本指南說明如何使用 Unity 專用 Google Cardboard XR 外掛程式,建立自己的虛擬實境 (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」(從 Git 網址新增套件)
  4. https://github.com/googlevr/cardboard-xr-plugin.git 貼到文字輸入欄位。
    該套件應會新增至已安裝的套件。
  5. 前往 Google Cardboard XR Plugin for Unity 套件。在「範例」部分中,選擇「匯入專案」
    範例資產應載入 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」GameObject 開啟「Inspector」視窗。將圖層設為「Interactive」。如果出現彈出式視窗,詢問是否要將所有子項物件的圖層也設為「互動式」,請按一下「是,變更子項」。
  5. 依序點選「Player」>「Camera」>「CardboardReticlePointer」GameObject,開啟「Inspector」視窗。在「Cardboard reticle pointer」指令碼中,選取「Interactive」做為「Reticle Interaction Layer Mask」

設定 Android 建構設定

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

  1. 選取「Android」,然後選擇「Switch Platform」
  2. 選取「Add Open Scenes」(新增開放式場景),然後選擇「HelloCardboard」。

播放器設定

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

設定解析度和顯示設定

依序前往「播放器」 >「解析度和呈現方式」

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

設定其他設定

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

  1. 在「Graphics APIs」中選擇 OpenGLES2OpenGLES3Vulkan,或任意組合。
  2. 在「最低 API 級別」中選取 Android 8.0 'Oreo' (API level 26) 以上版本。
  3. 在「目標 API 級別」中選取 API level 35 以上版本。
  4. 選取「Scripting Backend」中的 IL2CPP
  5. 在「目標架構」中選擇 ARMv7ARM64 或兩者,選取所需架構。
  6. 選取「網際網路存取」中的 Require
  7. 選取「Active Input Handling」(有效輸入處理) 中的 Input System Package (New)
  8. 在「Package Name」下方指定公司網域。
  9. 如果選取 Vulkan 做為「圖形 API」
    • 在「Vulkan Settings」(Vulkan 設定) 中,取消勾選「Apply display rotation during rendering」(在算繪時套用畫面旋轉設定) 核取方塊。
    • 如果 Unity 版本為 2021.2 以上,請在「Texture compression format」中選取 ETC2
  10. 如果 Unity 版本為 2023.1 以上,請選取 Activity 並清除「Application Entry Point」中的 GameActivity

設定發布設定

依序前往「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 外掛程式管理設定

前往「XR Plug-in Management」(XR 外掛程式管理)

  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」>「Other Settings」。

  1. 在「Camera Usage Description」(相機用途說明) 中,輸入 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」(XR 外掛程式管理)

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

建構您的專案

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

  1. 選取「建構」或「建構並執行」

重新置中

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

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

  1. 將裝置移至要重新置中的位置 (用做新的正向頭部姿勢)。
  2. 按住 Cardboard 裝置的觸發按鈕至少三秒。
  3. 放開觸發鍵。
  4. 初始姿勢現在會朝向相機所指的方向。

開啟及關閉 VR 模式

Unity XR 外掛程式管理 API 可讓您為 Google Cardboard XR 外掛程式 (適用於 Unity) 開啟或關閉 VR 模式。如需使用者說明文件和使用範例,請參閱 Unity 的使用者說明文件

HelloCardboard 範例中的 VrMode 場景,會顯示上述 API 的基本用法。在這個場景中,輕觸「退出」X 按鈕 即可關閉 VR 模式,再次輕觸螢幕上任何位置即可重新開啟。如要瞭解詳細執行方式,請參閱 VrModeController.cs

後續步驟