本指南將說明如何使用 Unity 的 Unity 專用 Google Cardboard XR 外掛程式,自行建立虛擬實境 (VR) 體驗。
你可以使用 Cardboard SDK,讓手機變成 VR 平台。智慧型手機可以顯示具有立體聲轉譯的 3D 場景、追蹤並回應頭部動作,以及偵測使用者何時按下檢視器按鈕,藉此與應用程式互動。
要開始使用,您將使用 HelloCardboard,這款示範遊戲展示 Cardboard SDK 的核心功能。在遊戲中,使用者會環顧虛擬世界來尋找及收集物件。以及如何進行以下操作:
- 設定開發環境
- 下載並建構試用版應用程式
- 掃描 Cardboard 觀影盒的 QR code,儲存參數
- 追蹤使用者的頭部移動情形
- 設定雙眼的正確變形,呈現立體影像
- 開啟及關閉虛擬實境模式
設定開發環境
軟體需求:
- Unity 2021.3.32f1 以上版本
- 在安裝期間,請務必確認納入 Android 和 iOS 版本支援。
- 必須安裝 Git,且
git
執行檔必須位於PATH
環境變數。詳情請參閱 Unity 套件管理員 Git 支援文件。
匯入 SDK 並建立新專案
請按照下列步驟匯入 Unity SDK 並建立新專案。
- 開啟 Unity 並建立新的 3D 專案。
- 在 Unity 中,依序前往「Window」 >「Package Manager」。
- 點選「+」+,然後選取「從 Git 網址新增套件」+。
- 將
https://github.com/googlevr/cardboard-xr-plugin.git
貼到文字輸入欄位中。
套件應新增至已安裝的套件。 - 前往「適用於 Unity 的 Google Cardboard XR 外掛程式」套件。在「範例」專區中,選擇「匯入至專案」。
範例資產應載入至Assets/Samples/Google Cardboard/<version>/Hello Cardboard
。
設定 HelloCardboard 場景
- 前往
Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes
,選取「Add Open Scenes」,然後選擇「HelloCardboard」,開啟範例場景。 - 開啟「圖層」選單,然後選取「編輯圖層...」。
- 定義名為「互動式」的新圖層。
- 按一下「Treasure」 GameObject,「Inspector」視窗開啟。將其圖層設為「互動式」。如果系統顯示彈出式視窗,詢問您是否要一併為所有子項物件將圖層設為互動式,請按一下「Yes, change children」(是,變更子項)。
- 依序按一下「Player」>「Camera」>「CardReticlePointer」 GameObject,開啟「 Inspector」視窗。在「Carboard reticle 指標」指令碼中,選取「Interactive」做為「Reticle Interaction Layer Mask」。
設定 Android 專案
依序前往「File」 >「Build Settings」。
- 選取「Android」,然後選擇「Switch Platform」。
- 選取「Add Open Scenes」,然後選擇「HelloCardboard」。
播放器設定
解析度與呈現方式
依序前往「Project Settings」 >「Player」 >「Resolution and Presentation」。
- 將「Default Orientation」設為「Landscape Left」或「Landscape Right」。
- 停用「Optimized Frame Pacing」。
其他設定
依序前往「Project Settings」 >「Player」 >「Other Settings」。
- 選擇
OpenGLES2
、OpenGLES3
或Vulkan
,或是在「Graphics API」中任意組合兩者。 - 在「Minimum API 級別」中選取
Android 8.0 'Oreo' (API level 26)
或更高版本。 - 在「目標 API 級別」中選取
API level 33
或更高版本。 - 在「Scripting Backend」中選取
IL2CPP
。 - 在「目標架構」中選擇
ARMv7
、ARM64
或兩者並用來選取所需架構。 - 在「Internet Access」(網際網路存取權) 中選取
Require
。 - 在「Package Name」下方指定公司網域。
- 如果選取
Vulkan
做為 Graphics API:- 在「Vulkan 設定」中,取消勾選「在算繪期間套用畫面旋轉功能」核取方塊。
- 如果 Unity 版本為 2021.2 以上,請在「Texture compression format」(紋理壓縮格式) 中選取
ETC2
。
- 如果 Unity 版本為 2023.1 以上版本,請在「Application Entry Point」中選取
Activity
並清除GameActivity
。
發布設定
依序前往「Project Settings」 >「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.6.1' implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
在
Assets/Plugins/Android/gradleTemplate.properties
中新增下列指令行:android.enableJetifier=true android.useAndroidX=true
XR 外掛程式管理設定
依序前往「專案設定」 >「XR 外掛程式管理」。
- 在「外掛程式供應商」底下選取
Cardboard XR Plugin
。
建構您的專案
依序前往「File」 >「Build Settings」。
- 選取「Build」,或選擇裝置,然後選取「Build and Run」。
設定 iOS 專案設定
依序前往「File」 >「Build Settings」。
- 選取「iOS」iOS,然後選擇「Switch Platform」iOS。
- 選取「Add Open Scenes」,然後選擇「HelloCardboard」。
播放器設定
解析度與呈現方式
依序前往「Project Settings」 >「Player」 >「Resolution and Presentation」。
- 將「Default Orientation」設為「Landscape Left」或「Landscape Right」。
其他設定
依序前往「Project Settings」 >「Player」 >「Other Settings」。
- 在「相機用量說明」中,寫入
Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
。 - 在「目標最低 iOS 版本」中,寫入
12.0
。 - 在「Package Name」下方指定公司網域。
XR 外掛程式管理設定
依序前往「專案設定」 >「XR 外掛程式管理」。
- 在「外掛程式供應商」底下選取
Cardboard XR Plugin
。
建構您的專案
依序前往「File」 >「Build Settings」。
- 選取「Build」或「Build and Run」。
正在重新置中
Cardboard SDK 可讓您使用 Recenter()
將頭部追蹤器重新置中。
請按照下列步驟使用範例應用程式試用:
- 將裝置移到您要重新置中的位置 (當做新的前向頭姿勢)。
- 手持 Cardboard 裝置的觸發程序至少 3 秒。
- 放開觸發條件。
- 初始姿勢現在是相機所指的方向。
開啟及關閉 VR 模式
Unity XR Plugin Management API 可讓您開啟或關閉 Unity 適用的 Google Cardboard XR 外掛程式的 VR 模式。如需使用者說明文件和使用範例,請參閱 Unity 的使用者說明文件。
HelloCardboard 範例中的 VrMode 場景會顯示上述 API 的基本用法。在這類場景中,輕觸「Exit」 即可關閉 VR 模式,而且只要輕觸畫面上的任何位置就能再次開啟。如要進一步瞭解執行方式,請參閱 VrModeController.cs。
後續步驟
- 詳閱紙板品牌宣傳指南。