前言 好記性不如爛筆頭,之前做項目的時候很熟練很順手就沒有寫筆記。因為排期問題項目中斷幾個月之後需要重新拾起來,結果發現自己現在忘記得差不多了,於是還是決定寫點東西記錄一下。即便是簡單的項目設置,忘記的時候也還是很痛苦啊。QAQ 1 版本信息 Unity 版本:2022.1.18f1c1 Visua ...
前言
好記性不如爛筆頭,之前做項目的時候很熟練很順手就沒有寫筆記。因為排期問題項目中斷幾個月之後需要重新拾起來,結果發現自己現在忘記得差不多了,於是還是決定寫點東西記錄一下。即便是簡單的項目設置,忘記的時候也還是很痛苦啊。QAQ
1 版本信息
Unity 版本:2022.1.18f1c1
Visual Studio 版本:Visual Studio Community 2022
2 開發流程
2.1 新建項目
一切的最初是新建一個 3D 項目,就起名為 MRTK Learn 好了!
註意:Unity 受到 Windows 最大路徑長度的影響,如果文件路徑的長度超過 255 個字元,可能會出現無法編譯的情況。因此,建議將本項目存儲在儘可能靠近驅動器根目錄的位置
2.2 導入 & 配置資源
在這裡,我們需要使用混合現實工具來為 Unity 項目導入所需的包,這裡放上工具的下載連接
https://www.microsoft.com/en-us/download/details.aspx?id=102778
註意:需要安裝.NET 5.0 運行時
才能運行混合顯示工具(在 VS 中可以安裝)
下載完成之後雙擊打開工具
需要略微等待一段時間,隨後點擊 Start 以啟動工具
選擇自己的項目路徑(這個地址要找到 Assets 文件夾),隨後點擊 Discover Feature 進行下一步
需要選擇以下工具包,然後點擊 Get Features 驗證選擇
點擊 Validate 以驗證所選的包及導入路徑是否正確
如果系統返回“未檢測到任何問題”,點擊“確定”,然後“導入”
選擇 Approve 將所需的包導入到項目中
最後點擊 Exit 關閉導入工具
2.3 配置 Unity 項目
當所需的包導入 Unity 之後,選擇 Yes 重啟 Unity,以便為新的輸入系統啟用後端
Unity 重啟後會顯示 MRTK 項目配置器。如果未顯示,可通過導航欄 Mixed Reality > Toolkit > Utilities > Configure Project for MRTK 手動打開配置器
點擊,打開 Project Settings
選擇使用 OpenXR,併為 OpenXR 選項進行設置
設置完成後打開錯誤提示,點擊 Fix All
應用 MRTK 的自動設置
導入 TextMeshPro 相關的包
設置完成後關閉配置器
隨後需要進行用戶設置,填寫自己的組織(公司)名稱和產品名稱。產品名稱就是應用在 HoloLens 菜單中顯示的名稱(在名稱前面添加一個下劃線可以讓該應用排在所有應用前面,方便開發期間查找)
填寫包名
註意:包名是應用的唯一識別碼,重覆部署相同包名的應用是會覆蓋安裝的!!!如果需要保留多個版本,要記得修改包名
2.4 創建場景並配置 MRTK
為測試場景添加 MRTK 工具
添加完成後如下所示
2.5 使用對象操控程式添加手部交互
新建一個 Cube 並調整位置和大小,併為 Cube 添加所需的腳本
- Unity 的單位為 1 米,如果使用預設縮放 (1,1,1),則立方體過大,在這裡將立方體的大小調整為 10*10*10 cm
- 世界原點 (0,0,0) 處為相機位置,就是用戶眼睛所在的位置,如果將立方體生成在與眼睛相同的位置上,那麼用戶帶上頭顯之後必須向後移動才能看到這個立方體
- 若想要使用手進行交互並抓取物體,則該物體必須具備的條件是:
- 擁有 Collider 碰撞器組件
- 擁有 Object Manipulator 腳本(添加此腳本時,系統會自動添加 Constraint Manager 腳本,該腳本是 Object Manipulator 依賴的腳本)
- 擁有 NearInteractionGrabbable 腳本
- Object Manipulator 腳本能夠讓物體變得可移動、縮放、旋轉,用戶可以通過一隻手或兩隻手來完成這些操作
- NearInteractionGrabbable 腳本讓用戶能夠直接用手接觸全息影像
2.6 進行測試
點擊 Play 進行測試
在 Unity 編輯器內的輸入模擬方法如下:
- 更改場景中的視圖
- 若要水平移動相機,按 W/A/S/D 鍵
- 若要垂直移動相機,按 Q/E 鍵
- 若要旋轉相機,按住滑鼠右鍵拖動
- 模擬手的輸入
- 若要模擬右手,按住空格鍵;鬆開則移除該手
- 若要模擬左手,按住左 Shift 鍵;鬆開則移除該手
- 若要在場景中移動手,只需移動滑鼠
- 若要模擬抓取,單擊滑鼠左鍵
- 若要旋轉手,按住空格鍵 + CTRL 鍵(右手)或按住左 Shift + CTRL 鍵(左手),然後移動滑鼠
- 固定某隻手
- 若要保持某隻手持續出現(即在編輯器中模擬雙手交互的情況),按下 T(左手)或 Y(右手)即可,再次按鍵則移除該手
2.7 生成 Unity 項目
打開 Build Settings,將示例場景添加到 Scene In Build 中,更換髮布平臺為 UWP 並調整對應的參數設置
修改 Build Settings 中的設置:
- 將“Architecture(體繫結構)”設置為“ARM 64-bit”
- 將“Build Type(生成類型)”設置為“D3D Project”
- 將“Target SDK Version(目標 SDK 版本)”設置為“Lastest Installed(最新安裝項)”
- 將“Minimum Platform Version(最低平臺版本)”設置為“10.0.10240.0”
- 將“Visual Sudio Version(Visual Studio 版本)”設置為“Visual Studio 2022”(安裝了哪個版本就用哪個版本,VS2019 也一樣的)
- 將“Build and Run on(生成和運行位置)”設置為“Local Machine(本地電腦)”
- 將“Build Configuration(生成配置)”設置為“Release(發佈)”
點擊 Switch Platform 切換平臺,隨後點擊 Build 生成項目即可
等待項目生成
生成完畢
3 參考資料
MRTK2-Unity 開發人員文檔 - MRTK 2 | Microsoft Learn
混合現實工具包簡介 - 設置項目並使用手勢交互 - Training | Microsoft Learn