Unity开发Hololens2—环境配置和官方案例发布并部署到设备上

一、前言

     我使用的Unity2018.4.26f1+Hololens2+VS2019设备其实大部分的环境配置的问题和发布官方已经给出了详细的说明,首先是安装工具,然后是.初始化项目并部署第一个应用程序,最后是使用 Visual Studio 部署到设备上。尽管,微软官方已经给出了非常详细的说明了,但是在配置的时候还是会出现不明白的地方,比如在安装工具中会要求你装Hololens2仿真模拟器,其实如果有真机的话我不建议安装这玩意儿。为啥?首先,是占磁盘空间不说(安装完大概10G),而且发布UWP的程序到这个模拟器上的操作可能比真机上还要复杂。当然,如果没有真机想要练练手的可以考虑下。本篇主要就是在官方给出的详细开发和配置说明的前提下进行一个系统性的详细说明,里面有我遇到的坑和微软官方说明有点难以理解的地方,因为我在按照官方的说明配置最后发布的时候碰到了各种问题。你可以按照我的说明来配置,也可以随时参照官方的说明来配置,有出入的地方我都会说明。

二、实现

2.1、安装工具

 1)首先,安装所需要的win10的最新操作系统并且启动开发者模式。我这里的版本是19042.985。然后是安装vs2019,使用visual Studio Installer安装vs2019的时候勾选需要安装的windows 10 SDK和.Net5.0,如图1所示,SDK的版本必须大于等于Hololens2

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图1a
Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图1b

版本,可以进入Hololens2设备,在设备上系统的设置->关于中找到,我的Hololens2系统的版本为“10.0.18.362.1042”。至于,.NET5.0运行时是后面使用“MixedRealityFeatureTool”工具所需的环境,后面会细讲,这里先安装好。

2)仿真模拟器可装可不装

3)Hololens2设备启动开发者模式

4)MixedRealityFeatureTool工具也是可装可不装

     该工具的官网说明Mixed Reality Feature Tool工具的下载和使用说明中有详细的介绍,这个工具是干嘛的呢?之前我们在Unity使用Hololens都是需要一个一个MRTK的插件,这个插件可以在Github上下载Microsoft Mixed Reality Toolkit v2.6.1。现在,微软把它集中到这个工具上,好处就是可以获取各版本的MRTK插件包,同时还能检测这个版本是否适用于当前使用的Unity或者是否有其他问题,如图2所示,但是坏处就是没法看到各版本插件的源码以及案例的场景。因此,如果想要学习或看源码的还是去

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图2

Githup上下载插件的源码导入到工程中。我写这篇文章的时候用的是Unity2018.4,使用MixedRealityFeatureTool工具时,还无法导入MRTK插件包,如图3所示,画圈的部分没有MRTK的信息,这个可能就是这个工具的作用把,可以自动的屏蔽掉使用的版本

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图3

不匹配的问题,但是我使用了MRTK的Github上的源码最终发布到设备上是可以使用的,所以,蜜汁困惑,特此说明。

2.2、初始化项目并部署第一个应用程序

  1) 将下载的MRTK插件(5个unitypackage)全部导入到unity中。在导入Foundation包的时候会弹出配置的窗口,只需要点击Apply就好。在导入Tool包时会再次弹出配置窗口,这个时候按照如图4所示选择Audio spatializer为MS HRTF spatializer并点击Apply即可。这个时候,unity会提示报错“Assertion failed on expression: '!name.empty()'”,不用管它。

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图4

 我在使用Unity2020.3或unity2021.1.4导入上述的5个MRTK包的时候,unity会报错,如图5所示,这个错误下可以Build,但是安装到设备上的时候不能动,也即画面是静止在头盔前面的,相当于一个显示屏,没有SLAM的空间了。目前还不知道是什么原因,猜测是PJ的不是很完全导致的。

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图5

2)然后在Build Setting中的设置如图6所示,这里和官方的配置稍有不同。添加“HandInteractionExamples”场景或者Demo里的随便哪个场景到Build中,其中会有提示导入TMP,这是因为MRTK的Text都采用了Text Mesh Pro组件,这个组件没有中文字体,在使用中文的时候需要主要。最后,点击Switch Platform切换到UWP这个目标平台下。期间会弹出MRTK的配置窗口,直接点击Apply即可。

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图4

 在Player Setting中设置如图7所示,将Depth Format设置为16-bit depth,其余的保持默认的即可。点击Build,在一个空文件中生成UWP的VS工程。当然,你还可以配置其他的,如发布的UWP程序图标、名字等。

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图7

 直接点击Build后的sln文件,会使用vs2019直接打开Build之后的UWP工程文件,在VS中打包发布并最后部署到Hololens2设备上。

2.3、使用 Visual Studio 部署到设备上

  1)首先将设备使用线连接到电脑上,连接成功了会在电脑设备和驱动器看到如图8所示的设备,点击这个设备,如果是一片空白那么是设备没有启动或者进入休眠状态了。激活设备之后就会看到设备的磁盘状态了,如图9所示,这样就表示设备是完全

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图8

 

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图9

连接到电脑待调试的状态。如果激活了还是没有出现如图9所示的设备磁盘,查看设备是否开启了开发者模式以及电脑是否开启了开发者模式并开启了USB ,如图10所示为电脑上的设置.。然后,将设备和电脑连接的网络保证在同一个局域网下。

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图10

2) 在打开上述发布的VS工程中,设置VS为如图11所示,该设置是对应图4中的设置。另外,选择远程计算机,官方说明中有选择使用设备,但我没有部署成功。使用远程计算机的时候倒是成功了。

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图11

然后,按照如图12所示的步骤配置远程计算机的IP地址,首先,在右侧的解决方案管理器中右键点击工程文件如图12中画圈表1的部分,然后选择属性即可弹出属性配置窗口,在窗口中点击调试,如图12所示画圈标2部分,在计算机名中点击并输入Hololens2

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图12

 设备的网络IP地址。点击选择并最终确定,然后关闭配置窗口。

3)点击调试但不运行或者使用快捷键“Ctr+F5"如图13所示,此时会生成UWP工程,如果是第一次这样配置并连接设备还会在开始执行之后要求输入设备的PIN码,如图14所示,注意这个PIN码是设备上的并且不是登录设备的那个PIN码,这个码需要到设备中

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图13

获取 。在设备中打开设置-》开发者选项-》配对,会弹出一个配对的码的窗口如图15所示,将这个码输入到图14中的中,等待设备连接成功之后会在图15的配对设备数显示1,这个时候可以关闭这个配对的码。注意,在图14中输入PIN码的时候切不可关闭设

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图14
Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图15(此为截取的电脑图,设备上不好弄示意一下)

备的配对码显示窗口,即图15显示的窗口,因为这个PIN只有在当下匹配的时候有用,重新打开又会是一个新的PIN码。

在生成中会出现部署错误的问题,如图16所示,这个问题是设备处于待机或者关机状态了,只需重新激活设备然后再执行就可成功部署到设备上。

 

Unity开发Hololens2—环境配置和官方案例发布并部署到设备上
图16

三、总结

3.1、VS安装工具中勾选的Windows SDK的版本必须比Hololens2设备上的版本大,至于开发电脑上的系统版本是否要比设备大目前没试过,官方只是提供说明需最新的Win10系统。

3.2、有些官方说明上的工具可装可不装,根据个人需要选择性安装,如仿真模拟器和MixedRealityFeatureTool;

3.3、在VS中将UWP程序部署到设备上时要时刻保持设备时待机显示画面的状态,如果处于休眠或者关闭的状态的时候会部署失败;

3.4、设备第一次和电脑连接时需要输入PIN码,这个PIN码时临时的,不是登入系统的那个PIN码,以后就不需要再输入PIN码了,即使时新建一个工程重新发布并部署也不需要再输入PIN码;

3.5、总的来说时比较繁琐的,需要每一步都格外小心,如果完全安全我上面的过程弄时绝对可以发布并部署成功的,但是如果按照官方说明弄有可能会失败。

上一篇:历经四个月,谷歌联盟的PIN码问题终于解决了


下一篇:STM32模拟SPI