本指南說明如何使用 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 並建立新專案。
- 開啟 Unity 並建立新的 3D 專案。
- 在 Unity 中,依序前往「Window」 >「Package Manager」。
- 按一下「+」,然後選取「Add package from git URL」(從 Git 網址新增套件)。
- 將
https://github.com/googlevr/cardboard-xr-plugin.git
貼到文字輸入欄位。
該套件應會新增至已安裝的套件。 - 前往 Google Cardboard XR Plugin for Unity 套件。在「範例」部分中,選擇「匯入專案」。
範例資產應載入Assets/Samples/Google Cardboard/<version>/Hello Cardboard
。
設定 HelloCardboard 場景
- 前往
Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes
,選取「Add Open Scenes」(新增開放式場景),然後選擇「HelloCardboard」開啟範例場景。 - 開啟「圖層」選單,然後選取「編輯圖層...」。
- 定義名為「Interactive」的新圖層。
- 按一下「Treasure」GameObject 開啟「Inspector」視窗。將圖層設為「Interactive」。如果出現彈出式視窗,詢問是否要將所有子項物件的圖層也設為「互動式」,請按一下「是,變更子項」。
- 依序點選「Player」>「Camera」>「CardboardReticlePointer」GameObject,開啟「Inspector」視窗。在「Cardboard reticle pointer」指令碼中,選取「Interactive」做為「Reticle Interaction Layer Mask」。
設定 Android 建構設定
依序前往「File」 >「Build Settings」。
- 選取「Android」,然後選擇「Switch Platform」。
- 選取「Add Open Scenes」(新增開放式場景),然後選擇「HelloCardboard」。
播放器設定
依序前往「Edit」 >「Project Settings...」。
設定解析度和顯示設定
依序前往「播放器」 >「解析度和呈現方式」。
- 將「預設方向」設為「向左橫向」或「向右橫向」。
- 停用「最佳化影格使用速度」。
設定其他設定
依序前往「Player」>「Other Settings」。
- 在「Graphics APIs」中選擇
OpenGLES2
、OpenGLES3
或Vulkan
,或任意組合。 - 在「最低 API 級別」中選取
Android 8.0 'Oreo' (API level 26)
以上版本。 - 在「目標 API 級別」中選取
API level 35
以上版本。 - 選取「Scripting Backend」中的
IL2CPP
。 - 在「目標架構」中選擇
ARMv7
、ARM64
或兩者,選取所需架構。 - 選取「網際網路存取」中的
Require
。 - 選取「Active Input Handling」(有效輸入處理) 中的
Input System Package (New)
。 - 在「Package Name」下方指定公司網域。
- 如果選取
Vulkan
做為「圖形 API」:- 在「Vulkan Settings」(Vulkan 設定) 中,取消勾選「Apply display rotation during rendering」(在算繪時套用畫面旋轉設定) 核取方塊。
- 如果 Unity 版本為 2021.2 以上,請在「Texture compression format」中選取
ETC2
。
- 如果 Unity 版本為 2023.1 以上,請選取
Activity
並清除「Application Entry Point」中的GameActivity
。
設定發布設定
依序前往「Player」>「Publishing Settings」。
- 在「Build」部分,選取
Custom Main Gradle Template
和Custom Gradle Properties Template
。 在
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'
在
Assets/Plugins/Android/gradleTemplate.properties
中新增下列程式碼:android.enableJetifier=true android.useAndroidX=true
設定 XR 外掛程式管理設定
前往「XR Plug-in Management」(XR 外掛程式管理)。
- 選取「外掛程式供應商」下方的
Cardboard XR Plugin
。
建構您的專案
依序前往「File」 >「Build Settings」。
- 選取「Build」(建構),或選擇裝置並選取「Build and Run」(建構並執行)。
設定 iOS 專案設定
依序前往「File」 >「Build Settings」。
- 選取「iOS」,然後選擇「Switch Platform」。
- 選取「Add Open Scenes」(新增開放式場景),然後選擇「HelloCardboard」。
播放器設定
依序前往「Edit」 >「Project Settings...」。
設定解析度和顯示設定
依序前往「Player」 >「Resolution and Presentation」。
- 將「預設方向」設為「向左橫向」或「向右橫向」。
設定其他設定
依序前往「Player」>「Other Settings」。
- 在「Camera Usage Description」(相機用途說明) 中,輸入
Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
。 - 在「Target minimum iOS Version」中,輸入
12.0
。 - 在「Package Name」下方指定公司網域。
- 檢查「Defer system gestures on edges」(在邊緣延遲系統手勢) 中的
Top Edge
、Left Edge
和Right Edge
。
設定 XR 外掛程式管理設定
前往「XR Plug-in Management」(XR 外掛程式管理)。
- 選取「外掛程式供應商」下方的
Cardboard XR Plugin
。
建構您的專案
依序前往「File」 >「Build Settings」。
- 選取「建構」或「建構並執行」。
重新置中
Cardboard SDK 可讓您使用 Recenter()
重新校正頭部追蹤器。
請按照下列步驟,使用範例應用程式試用這項功能:
- 將裝置移至要重新置中的位置 (用做新的正向頭部姿勢)。
- 按住 Cardboard 裝置的觸發按鈕至少三秒。
- 放開觸發鍵。
- 初始姿勢現在會朝向相機所指的方向。
開啟及關閉 VR 模式
Unity XR 外掛程式管理 API 可讓您為 Google Cardboard XR 外掛程式 (適用於 Unity) 開啟或關閉 VR 模式。如需使用者說明文件和使用範例,請參閱 Unity 的使用者說明文件。
HelloCardboard 範例中的 VrMode 場景,會顯示上述 API 的基本用法。在這個場景中,輕觸「退出」 即可關閉 VR 模式,再次輕觸螢幕上任何位置即可重新開啟。如要瞭解詳細執行方式,請參閱 VrModeController.cs。
後續步驟
- 詳閱 Cardboard 品牌宣傳指南。