前言

HoloLens2部署的权威教程在微软的官方文档中,但有些问题其实官方文档并没有列出,所以在实际开发过程中如果遇到bug,就需要自身或者前人的经验去解决。
比如:
对于Hololens2来说,在VS中需选择ARM64而不是x86。部署需要有良好的网速;工程打包出来的文件路径和工程路径有关联,如果这两个路径不匹配,部署就会失败。部署后打不开可能是因为Unity中未添加需要部署的场景,在Build Settings中点击Add open Scenes。


unity发布Hololens平台 unity导入hololens_unity发布Hololens平台

本人部署过程中使用到的各类环境:
电脑: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发布Hololens平台 unity导入hololens_开发者_02


点击倒数第二栏的Publish Settings -> 然后拉到最底部,找到Capabilities一栏。

unity发布Hololens平台 unity导入hololens_unity发布Hololens平台_03

找到Capabilities之后,根据项目的需要进行勾选。

unity发布Hololens平台 unity导入hololens_hololens_04


必选项1:空间感知

unity发布Hololens平台 unity导入hololens_开发者_05


必选项2:凝视输入

unity发布Hololens平台 unity导入hololens_unity_06


必选项3:麦克风

unity发布Hololens平台 unity导入hololens_unity_07

将Capabilities这栏折叠,它下面的一栏就是Supported Device Families,展开它,选择其中的Holographic(全息投影)

unity发布Hololens平台 unity导入hololens_unity_08

折叠刚刚的Supported Device Families,下面有一栏XRSettings,展开它,设置如下:

首先要勾选VR Supported,这时unity可能会自动导入一些东西。

导入完之后,在Virtual Reality SDKs里面,将深度Depth Format 修改为16-bit depth,并且勾选Enable Depth Buffer Sharing。

unity发布Hololens平台 unity导入hololens_mr_09

(2)Build Settings 部署设置

将场景添加到部署列表的方法:

1.在unity的Project中,双击打开你需要部署的某场景,

2.打开Build Settings面板,(unity菜单栏左上角File->Build Settings)

3.点击Add Open Scenes,当前场景就会添加到部署列表中。

unity发布Hololens平台 unity导入hololens_hololens_10

左边一栏Platform,是指你的工程需要部署到什么平台,因为要部署到HoloLens,所以需要选择第二个UWP(通用平台),接着在右边一栏进行设置,参考图中设置。

第四栏SDK版本需要说明一下,目前HoloLens里的Windows SDK版本为10.0.19041.0,如果这个SDK版本更新了,你就应该去装一个相对应版本的SDK。

SDK是在VS中安装的,如果你没装,这一栏就会无法选择。现在介绍一下SDK的安装方法:

打开vs installer,

点击工具->获取工具和功能,

unity发布Hololens平台 unity导入hololens_unity_11

选择’单个组件’,查找windows sdk,安装10.0.19041.0(根据自己的HoloLens的sdk版本选择)。

unity发布Hololens平台 unity导入hololens_unity_12

然后点右下角的修改按钮,安装完之后,需要重启Unity才能生效。

至此,SDK安装完毕。

如果有下图这样的黄色小三角提示,说明还差一些东西需要安装。

unity发布Hololens平台 unity导入hololens_hololens_13

到底差了什么东西呢?缺少的是ARM64生成工具,同上理,在vs installer 中“单个组件”查找下图的这两个组件,并安装它们。

unity发布Hololens平台 unity导入hololens_unity_14


unity发布Hololens平台 unity导入hololens_unity发布Hololens平台_15

装完这两个后,重新打开工程,三角报警消息便会消失了。
最后一点,VS需要安装一下C++通用平台,之后部署需要。
如果你已经看到了这里,不如回想一下,我们刚刚所做的一系列设置都是针对于unity中的,也就是打包阶段,下一阶段才是部署阶段哩。

(3)打包

上述的很多设置只需要做第一次,之后就不需要重新修改了,除非你建立了一个新项目,那么,得重新设置一遍。

激动人心的打包终于开始了!在确认工程没有报错、没有设置错误后,点击Build Settings里右下角的Build按钮,它会提示你选择一个文件夹,你需要自己创建一个文件夹,存放打包出来的文件。

我这里在D盘下,创建了文件夹HololensBuilds,专门放build文件。

unity发布Hololens平台 unity导入hololens_开发者_16

当然,如果build失败,原因多种多样。可能是设置不对,可能是脚本有错(摊手)。

开发者选项的设置:
在设置——更新和安全——开发者选项里,打开第一个按钮,“从任意源安装应用”。
当弹出以下的说明框,选择“是”。

unity发布Hololens平台 unity导入hololens_开发者_17

接着打开第二个按钮——启用通过局域网连接进行远程诊断的功能,在第一次启用时,会弹出下图所示的提示,选择“是”。

unity发布Hololens平台 unity导入hololens_hololens_18

这时需要等它安装完毕,才能进行下一步,安装提示如下图。

unity发布Hololens平台 unity导入hololens_开发者_19

安装完成后,就是下面图这样子了:

unity发布Hololens平台 unity导入hololens_hololens_20

此时,需要填写用户名和密码,填写完点击应用。这里的用户名和密码完全是自定义的,只要自己能记得住就可以。

unity发布Hololens平台 unity导入hololens_unity_21

鼠标滚轮往下滑,打开设备发现,如下图所示。

打开后,提示需要重启,重启后红字会消失。

unity发布Hololens平台 unity导入hololens_开发者_22

至此,开发者选项设置完毕,请关闭开发者选项,保存电脑数据,重启。

(4)开始部署

unity成功打包出工程后,在文件资源管理器中,找到打包出的工程文件,用VS打开里面的.sln文件。如下图。

unity发布Hololens平台 unity导入hololens_unity_23

这里使用USB部署方法。在VS的设置栏中,选择Release(发布)、ARM64、设备。如下图。

unity发布Hololens平台 unity导入hololens_unity发布Hololens平台_24

如果目标选项中没有“设备”,则可能需要将 Visual Studio 解决方案的启动项目从 IL2CPP 项目更改为 UWP 项目。 在“解决方案资源管理器”中,右键单击“YourProjectName (通用 Windows)”并选择“设为启动项目”。

将HoloLens2通过一根USB数据线,和电脑的USB端口连接。

点击vs中的开始执行(不调试)。

unity发布Hololens平台 unity导入hololens_mr_25

第一次部署时需要配对HoloLens中出现的PIN码。这里需要用HoloLens操作。
戴上HoloLens,先用手部召唤出菜单,接着选择设置-开发者选项-配对,将出现的六位数PIN码输入到电脑中。

如果部署成功,出现的结果如下。同时HoloLens菜单里会多出一个app。

unity发布Hololens平台 unity导入hololens_mr_26

如果出现生成成功,而部署失败,需要从本文第(4)小节重新开始部署。
如果出现生成失败,需要从第1步开始重新build,并且要检查工程的设置是否正确。

部署成功后,就可以拔掉HoloLens连接着的USB数据线,并戴上它,打开工程。
打开工程可能出现的问题:

  1. 打开工程后若什么都没看见,可能是因为build settings中未添加场景(去看第(2)小节)。
  2. 打开工程后若很卡,可能是场景资源问题,或者脚本问题,建议在场景中放一个debug窗口,查看报错信息。

在电脑端登录HoloLens设备门户

这是一个很有用的系统员操作界面,可以查看HoloLens的各种信息,比如存储的相片,视频,也能将HoloLens所看到的全息影像投到电脑屏幕中。
先查看Hololens的IP :召唤菜单栏,打开设置->网络和Internet->硬件属性,记住192.开头的一个IP地址。

  1. 在浏览器中输入HoloLens中显示的IP地址
  2. unity发布Hololens平台 unity导入hololens_unity_27

  3. 弹出警告框后,选择高级->继续前往
  4. unity发布Hololens平台 unity导入hololens_mr_28

  5. 接着需要验证用户信息。若此台Holo未设置过用户名和密码,会要求设置;如果已经设置过了,就输入用户名和密码。(也就是之前在开发者选项中设置的用户名与密码。)如果密码忘了,也没关系,只要输错次数足够多,就会触发重置用户名密码的功能。😂
    4. 进入设备门户,如下图所示的全英文界面。
  6. unity发布Hololens平台 unity导入hololens_mr_29

举个例子,点击Views->Mixed Reality Capture->Capture 可以查看HoloLens的摄像头的视角画面,至于画面是否流畅,取决于电脑的网速。