前言

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

本人部署过程中使用到的各类环境:
电脑: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平台

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

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

必选项1:空间感知

必选项2:凝视输入

必选项3:麦克风

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

折叠刚刚的Supported Device Families,下面有一栏XRSettings,展开它,设置如下:
首先要勾选VR Supported,这时unity可能会自动导入一些东西。
导入完之后,在Virtual Reality SDKs里面,将深度Depth Format 修改为16-bit depth,并且勾选Enable Depth Buffer Sharing。

(2)Build Settings 部署设置

将场景添加到部署列表的方法:
1.在unity的Project中,双击打开你需要部署的某场景,
2.打开Build Settings面板,(unity菜单栏左上角File->Build Settings)
3.点击Add Open Scenes,当前场景就会添加到部署列表中。

左边一栏Platform,是指你的工程需要部署到什么平台,因为要部署到HoloLens,所以需要选择第二个UWP(通用平台),接着在右边一栏进行设置,参考图中设置。
第四栏SDK版本需要说明一下,目前HoloLens里的Windows SDK版本为10.0.19041.0,如果这个SDK版本更新了,你就应该去装一个相对应版本的SDK。
SDK是在VS中安装的,如果你没装,这一栏就会无法选择。现在介绍一下SDK的安装方法:
打开vs installer,
点击工具->获取工具和功能,

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

然后点右下角的修改按钮,安装完之后,需要重启Unity才能生效。
至此,SDK安装完毕。
如果有下图这样的黄色小三角提示,说明还差一些东西需要安装。

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

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

(3)打包

上述的很多设置只需要做第一次,之后就不需要重新修改了,除非你建立了一个新项目,那么,得重新设置一遍。
激动人心的打包终于开始了!在确认工程没有报错、没有设置错误后,点击Build Settings里右下角的Build按钮,它会提示你选择一个文件夹,你需要自己创建一个文件夹,存放打包出来的文件。
我这里在D盘下,创建了文件夹HololensBuilds,专门放build文件。

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

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

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

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

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

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

鼠标滚轮往下滑,打开设备发现,如下图所示。
打开后,提示需要重启,重启后红字会消失。

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

(4)开始部署

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

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

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

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

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

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

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

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

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

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

在电脑端登录HoloLens设备门户

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

  1. 在浏览器中输入HoloLens中显示的IP地址

  2. 弹出警告框后,选择高级->继续前往

  3. 接着需要验证用户信息。若此台Holo未设置过用户名和密码,会要求设置;如果已经设置过了,就输入用户名和密码。(也就是之前在开发者选项中设置的用户名与密码。)如果密码忘了,也没关系,只要输错次数足够多,就会触发重置用户名密码的功能。

    【Unity+HoloLens2】从0开始在HoloLens2部署MR工程相关推荐

    1. Unity NGUI 3.0.4版本 制作网络版斗地主

      Unity NGUI 3.0.4版本 @by 灰太龙  开发环境 Win7旗舰版 Unity 4.2.1f4 本文就写个开门篇,告诉大家怎么用NGUI,第一步导入NGUI 3.0.4版本! 1.启动U ...

    2. Ubuntu GitLab CI Docker ASP.NET Core 2.0 自动化发布和部署(1)

      相关博文: Ubuntu 简单安装和配置 GitLab Ubuntu 简单安装 Docker Ubuntu Docker 简单安装 GitLab Ubuntu Docker 安装和配置 GitLab ...

    3. Flume1.5.0的安装、部署、简单应用(含伪分布式、与hadoop2.2.0、hbase0.96的案例)

      原文地址:http://www.cnblogs.com/lion.net/p/3903197.html 目录: 一.什么是Flume? 1)flume的特点 2)flume的可靠性 3)flume的可 ...

    4. redis 3.0的集群部署

      2019独角兽企业重金招聘Python工程师标准>>> redis 3.0的集群部署 博客分类: 缓存 文章转载自:http://hot66hot.iteye.com/blog/20 ...

    5. wildfly-9.0.2 web项目部署详细步骤

      http://www.cnblogs.com/101key/p/5131546.html 一.配置操作系统环境变量 JAVA_HOME = C:\Program Files (x86)\Java\jd ...

    6. Spark2.1.0 + CarbonData1.0.0集群模式部署及使用入门

      1 引言 Apache CarbonData是一个面向大数据平台的基于索引的列式数据格式,由华为大数据团队贡献给Apache社区,目前最新版本是1.0.0版.介于目前主流大数据组件应用场景的局限性,C ...

    7. 搭建京东客京推推CMS2.0导购网站部署教程,新手教程带视频

      京东优惠券网站搭建(京推推CMS优惠券导购网站搭建教程) 高清视频教程地址:https://www.ixigua.com/i6492560653939638797/ 西瓜视频高清播放地址 看完不会搭建 ...

    8. Unity WebGL发布及Ubuntu Apache服务器部署

      Unity WebGL发布及Ubuntu Apache服务器部署 Unity 中WebGL的设置 Ubuntu Apache web服务器搭建 网页修改 附一:Ubuntu 文件操作常用命令 附二:A ...

    9. Spark2.2.0集群搭建部署之【HADOOP集群篇】

      软件准备信息,详见Spark2.2.0集群搭建部署之[软件准备篇] 基础配置信息,详见Spark2.2.0集群搭建部署之[基础配置篇] SSH无密访问,详见park2.2.0集群搭建部署之[无密访问篇 ...

    最新文章

    1. unix odbc php 连接sqlserver,Ubuntu下通过unixODBC连接MS SqlServer2005
    2. deeplearning URL
    3. 《Deep Learning With Python second edition》英文版读书笔记:第十一章DL for text: NLP、Transformer、Seq2Seq
    4. 【读书笔记】程序员的自我修养总结(一)
    5. 超级终端工具_【招商通信余俊团队】智能网联汽车发展提速,科技巨头跑步入场,有望成为新一代超级终端——招商通信周周谈(2020年第48周)...
    6. 深入了解人工智能专业怎么样
    7. 给spring容器注册组件
    8. spss多元线性回归散点图_SPSS19.0实战之多元线性回归分析
    9. 2021SC@SDUSC Zxing开源代码(八)Data Matrix二维码(一)
    10. PS制作科幻特效的金色立体文字
    11. 微信企业号开发(一)
    12. java毕业设计_基于android的二手书城app的设计与实现
    13. 边缘人工智能芯片大放异彩
    14. 京东淘宝天猫API销量接口
    15. TypeError: an integer is required (got type bytes)
    16. c语言输入身高体重 计算体重指数,体重指数的计算公式正确的是
    17. 杂记 选一款心仪的听歌软件
    18. 微软2010(附下载地址),yozo,wps三种office的对比
    19. 第十八届全国大学生智能汽车竞赛 航天智慧物流创意组-线上赛多车协同侦察
    20. Dubbo之HelloWorld

    热门文章

    1. 玉伯直播推荐的 3 本书、聊到的一些内容
    2. 2022山东省安全员C证考试题库及在线模拟考试
    3. DP2232H国产替代FT2232H_USB2.0转UART/FIFO芯片
    4. 中国计算机国家重点实验室、美国计算机前20名学校
    5. 技术只是工作的一部分
    6. STM32-IO方向设置
    7. 跨考南京理工计算机需要学什么,2020年南京理工大学计算机应用技术考研经验分享...
    8. CRMEB小程序生成小程序码显示发布小程序才可以获取小程序码解决办法
    9. 线阵CCD和面阵CCD
    10. JS逆向之Webpack(二)