序言

起因是暑期一直留校学习,碰桥长沙远大集团Daniel Zhang——张公子的团队开发出一种划时代性的新型建筑材料,想要借助HoloLens MixedReality进行充满科技感的现场动态演示,继而我们团队将项目承接了过来,进行HoloLens真机的入门级别的demo开发,并计划后期引导远大公司的技术人员快速上手开发流程。在对方投资的一台HoloLens真机的协助下,基于MRTK进行了一些入门开发,开发过程中由于国内进行相关开发的团队过少,且微软官方z近期已将原HoloToolKit改版为MixedRealityToolKit也即MRTK,能搜到的有关HoloLens开发的博客很少,且大都存在时效性,给现今开发Hololens的团队带来了巨大的挑战;而官方文档又只有英文版且对入门级别不太友好,造成开发过程中难题不断。
所幸,在团队夜以继日连续几天的开发环境配置/查看源码/项目开发的努力下,最终将初期任务圆满完成,团队中的Chester已经把初版Demo的项目源码传到了GitHub上,以下是项目地址: https://github.com/zhyChesterCheung/HoloLens-Development
- PS:由于MRTK已相当完备,即使从未接触过Unity的菜鸟也能很轻易地快速上手。
环境配置
以下均为笔者所用配置环境,一定要重视环境的配置,笔者团队全员配置了一个晚上才试出来的这套可行的方案: 名称 | 环境 ——– | —– 操作系统 | Windows 10 1809【至少1703+】 Visual Studio | Visual Studio Community 2019 Unity | Unity 2018.4.6f1【至少2018.4】
Visual Studio具体配置
Visual Studio的配置是否正确决定了项目能否成功从Unity中构建导出,进而设计能否在Hololens生成APP及调试。下图为笔者经多次尝试后确认的正确配置所需选择的。
MRTK 工具包配置
在进行Hololens的开发时,我们需要集成微软官方提供的 MixedRealityToolKit 项目。MixedRealityToolKit ,即原HoloToolkit-Unity 项目,简称MRTK,是微软官方的开源项目,用于帮助开发者快速开发 HoloLens 应用,能够快速为项目集成基本输入、空间映射和场景匹配等特性。
关于该项目的详细介绍,可以参考MRTK官方说明文档https://microsoft.github.io/MixedRealityToolkit-Unity/README.html
集成步骤
- 在Github上下载MRTK项目代码 https://github.com/microsoft/MixedRealityToolkit-Unity
- 将下载的ZIP解压,使用Unity以打开工程的方式打开解压得到的文件夹,右击Assets,选择Export Package,将所有MRTK前缀的包全部选上,导出得到一unitypackage格式的文件,即是后续在Unity项目中可直接导入的MRTK工具包。
Unity配置
Unity 3D是进行Hololens开发的主要平台,下面进入正题。 配置步骤:
- 使用Unity新建一个3D项目,由左上角选项栏沿Assets-import package-custom package途径引入上一步中导出的unitypackage文件。
- 在成功导入后选项框上会出现一个新的选项——Mixed Reality Toolkit,点击并选择Add to Scene and Configure,选择添加图中高亮的MixedRealityToolKitConfigurationProfile,随即左侧框中出现MRTK及MRPlaySpace。
- 由于Hololens内装的是UWP版的Windows 10系统,而Unity默认创建项目运行的平台即标准版本,与之不符,因而需在左上角选项栏中沿File-Build Settings去转换平台为UWP版,相关设置更改如下图,且勿漏选,错选。(笔者使用的是Unity 2018.4.6f1版本)选好后点击Switch Platform即可。
- 仍在Building Settings中点击左下角的Player Settings,在Unity右侧的Inspector中选择XR Settings,勾选其中的Virtual Reality Support 和WSA Holographic Remoting supported。
- 截至此步基本配置已完成,可通过Holographic Remoting Player与设备连接,点击开始即快捷地调试已有项目。注意Holographic Remoting Player是在Hololens上安装,电脑端通过Window-XR-Holographic Emulation途径打开下面的界面,Emulation Mode 选择Remote to Device,在Hololens上打开Holographic Remoting Player后即可获取Hololens的ip地址,输入到Remote Machine中即可。 详细使用方法见:https://docs.microsoft.com/zh-cn/windows/mixed-reality/holographic-remoting-player
快速上手开发
MRTK使用
MRTK是一个封装完好,功能非常完备的工具包,配置成功后即可快速入手使用,此处仅介绍一些实用的小技巧。
首先需要注意的是,在添加配置到当前场景中后,此场景即可支持所有MixedReality中的功能如手势识别,空间感知,眼部追踪等等,也自动地初始化好了光标和MR Camera ,因而HoloLens项目开发的实质是更改展示对象的属性,比如笔者团队将fbx形式的3D办公楼模型转换为可以在HoloLens中动态搭建,拖拽,旋转,放大缩小等功能的展示对象,除动态搭建为自行编写的脚本外,其余功能均是给展示对象即Game Object添加MRTK中已给出的脚本组件,再进行一些功能上的修改罢了。

Tips
在完成上文配置后,当前Unity左下角的Asset中会出现众多MixedRealityToolKit工具包,其中的MixedRealityToolKit.EXamples中存放有众多微软官方给出,关于MixedReality众多功能具体实现的Demo。 如果想要实现某项功能,可打开对应的scene,在HoloLens上运行测试,找到拥有想要实现的功能的对象,在右侧的inspectors中可看到该对象所用到的所有脚本组件,将其中与MRTK相关的如Manipulation Handler,Near Interation Grabbable等添加到自己创建的对象上,即可赋予该对象相同的属性。
补充
- 强烈推荐在Windows Store(Windows自带)上下载Microsoft HoloLens,可实时获取设备第一视角的直播,及进行实时照相,录屏等功能,方便团队开发。
以上,本文章中如有任何技术问题,请联系笔者进行修改,