教程-如何配置适用于hololens 2的Unity开发环境

Posted by 秦浩凯(Haokai Qin) on 2022-01-22
Estimated Reading Time 7 Minutes
Words 1.9k In Total
Viewed Times

前言

    本教程使用的环境是:
    Unity 2019.4.23 LTS + Visual Studio 2019 16.8
    目前可确认适用于:
    Hololens 2 系统版本18362-19041 + MRTK 2.4.0

    1. 温馨提示:注意记录hololens及其对应账户的各种密码,以及开机的PIN码 :-)
    2. 无论如何,我强烈建议留出足够的磁盘空间用于hololens 2开发,因为MRTK 2打包后的文件真的很大。比holoToolKit(MRTK 1)大得多。这是由于MRTK进行了额外的C#到C++的编译。这部分将在未来详细介绍。

    如果你更愿意阅读官方文档,那么我建议阅读以下内容:

https://docs.microsoft.com/zh-cn/hololens/hololens2-setup

https://docs.microsoft.com/zh-cn/windows/mixed-reality/develop/install-the-tools#installation-checklist

https://docs.microsoft.com/zh-cn/windows/mixed-reality/develop/unity/unity-development-overview?tabs=arr%2CD365%2Chl2

https://docs.microsoft.com/zh-cn/learn/paths/beginner-hololens-2-tutorials/

准备工作

    常用的hololens开发环境是:UNITY、UNREAL、WEBGL。其中unity可参考资料最多,而webgl和unreal的资料都较少。本教程使用unity作为开发环境。
(这主要是为了使用德累斯顿工业大学交互媒体实验室(iml-dresden.org)开发的UNITY程序库u2vis,在此表示感谢。我从他们的论文中受益良多。)

    https://docs.microsoft.com/zh-cn/windows/mixed-reality/develop/install-the-tools#installation-checklist
    这个链接提供了安装对应环境的官方指引,因此我不会写太多。

体验hololens

    尽管这个部分没有什么可写的,我建议在正式开始学习之前先体验一下这台梦幻设备。

查阅微软官方文档

在之后的开发过程中你会经常查看这些文档的。基本上总能找到答案(包括但不限于stackoverflow,那里资料丰富;不要奢望所有问题在中文互联网内有答案。)

    https://docs.microsoft.com/zh-cn/windows/mixed-reality/develop/install-the-tools#installation-checklist
    这个链接提供了安装对应环境的官方指引,因此我不会写太多。

安装unity

    略。

安装Visual Studio

    略。注意安装win10 SDK。

获取MRTK包

    https://docs.microsoft.com/zh-cn/windows/mixed-reality/mrtk-unity/?view=mrtkunity-2021-05
    在‘包’页面内可以找到github仓库链接。

(可选)安装HoloLens模拟器

    https://docs.microsoft.com/zh-cn/windows/mixed-reality/develop/advanced-concepts/using-the-hololens-emulator
    同样地,官方文档大概能回答你的所有疑问。
    模拟器是给暂时拿不到真机的开发者准备的,而且需要比较大的空间。运行模拟器需要win10专业版系统。模拟器版本需要和电脑的win10版本匹配。

编辑AR场景(及代码)

    实验室的同学有一次问到,unity在编程流程中的地位是什么。我认为是绘制整个AR场景并控制场景逻辑。本节将会通过创建一个基础场景来说明如何使用unity。

    我开始接触AR开发时同样没有unity基础,因此可以不必担心unity的学习难度。

    关于unity开发的资料也有很多,这里举个例子:
https://catlikecoding.com/unity/tutorials/

    对于整个AR开发流程,可以参考:
    https://docs.microsoft.com/zh-cn/windows/mixed-reality/develop/unity/unity-development-overview?tabs=arr%2CD365%2Chl2
    或者
    https://docs.microsoft.com/zh-cn/learn/paths/beginner-hololens-2-tutorials/
    或者
    https://docs.microsoft.com/zh-cn/learn/modules/pc-holographic-remoting-tutorials/

    其中最后一个链接是直接相关的,可以直接看。

新建unity工程

    略。

导入MRTK包

    将下载好的unitypackage文件导入到unity中。
步骤是:
Asset-> Import Package
    对于2.4.0版本,至少需要导入的是Microsoft.MixedReality.Toolkit.Unity.Foundation.2.4.0Microsoft.MixedReality.Toolkit.Unity.Examples.2.4.0。当然全部导入也可。

设置mrtkconfig文件

    通常,对于初学者而言暂时不需要处理,但需要知道这个文件在哪里修改。
    一般而言修改这个文件主要是为了调试交互。但有些设置可能会挡住画面内容,建议关闭。

关闭性能调试指示器 diagnoses

    这在调试阶段会很有用,但会挡住部分画面。

注:设备拍照或录像时会自动隐藏这个工具条。

关闭空间感知网格 spatial awareness

    一般而言用不到这个网格,可以直接关闭。

部署到hololens

通常可以采用的方式是:无线调试、有线调试及安装包旁加载。
https://docs.microsoft.com/zh-cn/windows/mixed-reality/develop/advanced-concepts/using-visual-studio?tabs=hl2

无线调试(需要hololens 2系统版本 不低于 19041)

可以在VS或Unity中启动这一调试方法。我的建议是在unity中进行有线连接。
需要在hololens 2中安装holographics remote.

有线调试

很遗憾我没试过。实验室没有对应的usb type-C接口设备。(甩锅)

安装包旁加载

这个方法意味着需要将整个程序打包成安装包(.appx),进行部署。

1. 从unity生成VS工程文件

2. 从VS工程文件生成安装包

3. 部署安装包(首次部署)

在设备门户(windows device portal)中部署程序。
令电脑与hololens处在同一局域网,在电脑端浏览器输入hololens的局域网IP地址,即可打开设备门户。

这里需要特别注明的是,如果是“首次部署”,需要一同部署附加项。
附加项会在打包的同时生成好。

hololens的使用

实际上,对于初次接触头戴式AR设备的同学,我建议首先去(找有经验的人帮忙)体验一下hololens的使用。
在hololens里安装一个MRTK EXAMPLES程序,熟悉如何与虚拟物体交互,以及这台设备的性能。该程序可以在microsoft store中找到。

https://docs.microsoft.com/zh-cn/hololens/hololens2-setup
这个链接提供了初次使用的注意事项。

如何拍摄实时画面?

可以在设备门户(windows device portal)中管理设备状态。
令电脑与hololens处在同一局域网,在电脑端浏览器输入hololens的局域网IP地址,即可打开设备门户。在设备门户的Mixed Reality Capture选项卡内可以查看实时画面。
同样地,也可以在电脑上安装Microsoft hololens应用。这一应用和浏览器里的设备门户的功能是一样的。

如何传输hololens上的文件?

对于捕获的混合现实照片或视频,可以在mixed reality capture页内直接下载。
一部分文件具有权限保护,则可能需要使用有线连接以上传-下载文件。
(UWP提供了复杂的权限控制,这会对科研导向的代码开发产生一些影响)

设备门户的其他功能

借助hololens自身传感器,可以在设备门户内生成设备所处空间环境的三维模型。
这一设备门户还有很多功能,不过本教程内并不会用到。

这之后…

深入了解各项功能

为你的程序添加交互方法

在unity中绘制自定义图形


If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !