天天看點

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

前言

HoloLens2部署的權威教程在微軟的官方文檔中,但有些問題其實官方文檔并沒有列出,是以在實際開發過程中如果遇到bug,就需要自身或者前人的經驗去解決。

比如:

對于Hololens2來說,在VS中需選擇ARM64而不是x86。部署需要有良好的網速;工程打包出來的檔案路徑和工程路徑有關聯,如果這兩個路徑不比對,部署就會失敗。部署後打不開可能是因為Unity中未添加需要部署的場景,在Build Settings中點選Add open Scenes。

以下所述内容均為個人實踐過程中所得經驗,參考連結有:

https://docs.microsoft.com/zh-cn/windows/mixed-reality/develop/unity/tutorials/holograms-100#chapter-6—build-and-deploy-to-device-from-visual-studio

https://docs.microsoft.com/zh-cn/windows/mixed-reality/develop/platform-capabilities-and-apis/using-visual-studio

https://docs.microsoft.com/zh-cn/windows/mixed-reality/develop/unity/tutorials/mr-learning-base-02#building-your-application-to-your-hololens-2

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

本人部署過程中使用到的各類環境:

電腦:Win10,i9,i7,i5

硬體:Microsoft Hololens 2

軟體:Unity 2019.4.11f1,Visual Studio2019

環境:MRTK2.5.9,Windows SDK10.19041.0

部署不強調順序,設定正确即可。

正文

注意:需要部署到Hololens上的工程,一開始就應該選擇UWP平台。

(1)Project Settings

菜單欄選擇Edit->ProjectSettings->Player,檢查是否切換到UWP平台

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

點選倒數第二欄的Publish Settings -> 然後拉到最底部,找到Capabilities一欄。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

找到Capabilities之後,根據項目的需要進行勾選。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

必選項1:空間感覺

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

必選項2:凝視輸入

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

必選項3:麥克風

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

将Capabilities這欄折疊,它下面的一欄就是Supported Device Families,展開它,選擇其中的Holographic(全息投影)

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

折疊剛剛的Supported Device Families,下面有一欄XRSettings,展開它,設定如下:

首先要勾選VR Supported,這時unity可能會自動導入一些東西。

導入完之後,在Virtual Reality SDKs裡面,将深度Depth Format 修改為16-bit depth,并且勾選Enable Depth Buffer Sharing。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

(2)Build Settings 部署設定

将場景添加到部署清單的方法:

1.在unity的Project中,輕按兩下打開你需要部署的某場景,

2.打開Build Settings面闆,(unity菜單欄左上角File->Build Settings)

3.點選Add Open Scenes,目前場景就會添加到部署清單中。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

左邊一欄Platform,是指你的工程需要部署到什麼平台,因為要部署到HoloLens,是以需要選擇第二個UWP(通用平台),接着在右邊一欄進行設定,參考圖中設定。

第四欄SDK版本需要說明一下,目前HoloLens裡的Windows SDK版本為10.0.19041.0,如果這個SDK版本更新了,你就應該去裝一個相對應版本的SDK。

SDK是在VS中安裝的,如果你沒裝,這一欄就會無法選擇。現在介紹一下SDK的安裝方法:

打開vs installer,

點選工具->擷取工具和功能,

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

選擇’單個元件’,查找windows sdk,安裝10.0.19041.0(根據自己的HoloLens的sdk版本選擇)。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

然後點右下角的修改按鈕,安裝完之後,需要重新開機Unity才能生效。

至此,SDK安裝完畢。

如果有下圖這樣的黃色小三角提示,說明還差一些東西需要安裝。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

到底差了什麼東西呢?缺少的是ARM64生成工具,同上理,在vs installer 中“單個元件”查找下圖的這兩個元件,并安裝它們。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文
【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

裝完這兩個後,重新打開工程,三角報警消息便會消失了。

最後一點,VS需要安裝一下C++通用平台,之後部署需要。

如果你已經看到了這裡,不如回想一下,我們剛剛所做的一系列設定都是針對于unity中的,也就是打包階段,下一階段才是部署階段哩。

(3)打包

上述的很多設定隻需要做第一次,之後就不需要重新修改了,除非你建立了一個新項目,那麼,得重新設定一遍。

激動人心的打包終于開始了!在确認工程沒有報錯、沒有設定錯誤後,點選Build Settings裡右下角的Build按鈕,它會提示你選擇一個檔案夾,你需要自己建立一個檔案夾,存放打包出來的檔案。

我這裡在D盤下,建立了檔案夾HololensBuilds,專門放build檔案。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

當然,如果build失敗,原因多種多樣。可能是設定不對,可能是腳本有錯(攤手)。

開發者選項的設定:

在設定——更新和安全——開發者選項裡,打開第一個按鈕,“從任意源安裝應用”。

當彈出以下的說明框,選擇“是”。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

接着打開第二個按鈕——啟用通過區域網路連接配接進行遠端診斷的功能,在第一次啟用時,會彈出下圖所示的提示,選擇“是”。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

這時需要等它安裝完畢,才能進行下一步,安裝提示如下圖。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

安裝完成後,就是下面圖這樣子了:

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

此時,需要填寫使用者名和密碼,填寫完點選應用。這裡的使用者名和密碼完全是自定義的,隻要自己能記得住就可以。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

滑鼠滾輪往下滑,打開裝置發現,如下圖所示。

打開後,提示需要重新開機,重新開機後紅字會消失。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

至此,開發者選項設定完畢,請關閉開發者選項,儲存電腦資料,重新開機。

(4)開始部署

unity成功打包出工程後,在檔案資料總管中,找到打包出的工程檔案,用VS打開裡面的.sln檔案。如下圖。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

這裡使用USB部署方法。在VS的設定欄中,選擇Release(釋出)、ARM64、裝置。如下圖。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

如果目标選項中沒有“裝置”,則可能需要将 Visual Studio 解決方案的啟動項目從 IL2CPP 項目更改為 UWP 項目。 在“解決方案資料總管”中,右鍵單擊“YourProjectName (通用 Windows)”并選擇“設為啟動項目”。

将HoloLens2通過一根USB資料線,和電腦的USB端口連接配接。

點選vs中的開始執行(不調試)。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

第一次部署時需要配對HoloLens中出現的PIN碼。這裡需要用HoloLens操作。

戴上HoloLens,先用手部召喚出菜單,接着選擇設定-開發者選項-配對,将出現的六位數PIN碼輸入到電腦中。

如果部署成功,出現的結果如下。同時HoloLens菜單裡會多出一個app。

【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

如果出現生成成功,而部署失敗,需要從本文第(4)小節重新開始部署。

如果出現生成失敗,需要從第1步開始重新build,并且要檢查工程的設定是否正确。

部署成功後,就可以拔掉HoloLens連接配接着的USB資料線,并戴上它,打開工程。

打開工程可能出現的問題:

  1. 打開工程後若什麼都沒看見,可能是因為build settings中未添加場景(去看第(2)小節)。
  2. 打開工程後若很卡,可能是場景資源問題,或者腳本問題,建議在場景中放一個debug視窗,檢視報錯資訊。

在電腦端登入HoloLens裝置門戶

這是一個很有用的系統員操作界面,可以檢視HoloLens的各種資訊,比如存儲的相片,視訊,也能将HoloLens所看到的全息影像投到電腦螢幕中。

先檢視Hololens的IP :召喚菜單欄,打開設定->網絡和Internet->硬體屬性,記住192.開頭的一個IP位址。

  1. 在浏覽器中輸入HoloLens中顯示的IP位址
    【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文
  2. 彈出警告框後,選擇進階->繼續前往
    【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文
  3. 接着需要驗證使用者資訊。若此台Holo未設定過使用者名和密碼,會要求設定;如果已經設定過了,就輸入使用者名和密碼。(也就是之前在開發者選項中設定的使用者名與密碼。)如果密碼忘了,也沒關系,隻要輸錯次數足夠多,就會觸發重置使用者名密碼的功能。😂

    4. 進入裝置門戶,如下圖所示的全英文界面。

    【Unity+HoloLens2】從0開始在HoloLens2部署MR工程前言正文

舉個例子,點選Views->Mixed Reality Capture->Capture 可以檢視HoloLens的攝像頭的視角畫面,至于畫面是否流暢,取決于電腦的網速。