哈Ha! 今天,我们开始在Windows Mixed Reality上系列文章。 在其框架内,我们将从头开始在Unity上开发一个混合现实应用程序。 顺便说一下,所有这些都将在实验室工作(实验室工作)的格式中进行,也就是说,您可以自己与文章的发布同时创建这样的应用程序。 立即加入!

整个指南将包括5个部分。 它将每周补充一次。 您可以在下面转到所需的部分。
第1部分: 从Unity导出Windows Mixed Reality的UWP应用程序 ;
第2部分: 设置环境(VR) ;
第3部分: 控制器 ;
第4部分: 空间声音 ;
第5部分: HoloLens和图形 。
混合现实是现实世界与虚拟内容的结合,虚拟环境是一种混合环境,在该混合环境中,物理和数字对象共同存在并彼此交互。
在本教程中,您将为沉浸式Windows Mixed Reality(VR)耳机和Microsoft HoloLens(AR)设备创建一个应用程序。 使用Unity,您将创建一个虚拟房间,用户可以在其中与再现空间声音的扬声器进行交互。 用户可以通过传送到房间中的各个点或在房间中移动扬声器本身来听到声音。
将使用
Mixed Reality Toolkit创建该应用程序,以最大程度地与HoloLens兼容。 在课程结束时,您将对应用程序进行一些更改,以使虚拟现实应用程序为HoloLens设备优化体验。
完成课程后,您将:
- 学习如何使用Unity创建虚拟现实应用程序,并巩固这些知识;
- 了解如何配置Unity以为混合现实构建UWP应用程序。
- 了解如何在MR应用程序中使用标准的混合现实(MR)功能,例如摄像机设置,输入处理(注视控制,运动和手势控制器)以及空间声音再现;
- 了解如何创建适用于VR眼镜和HoloLens的Mixed Reality应用程序。
硬件要求
- 启用MR的计算机
- [可选]带有运动控制器的沉浸式Windows混合现实耳机
- [可选] HoloLens设备
注意事项 如果您无权使用沉浸式耳机或HoloLens设备,则可以在混合现实模拟器或HoloLens模拟器中查看应用程序的工作方式。 请参阅下面的链接。软件需求
•
Visual Studio 2017 。 任何版本都可以,包括免费的社区版。 在安装期间,必须选择以下组件和工作负载:
注意事项 在Visual Studio中,可以使用菜单工具->获取工具和功能(工具->获取工具和组件)来访问各种工具包。•
Unity 2017.4.3 (在安装过程中选择组件时,您需要添加.Net脚本后端);
•OS Windows 10 Fall Creators Update(或更高版本);
- 要启用开发人员模式,请转到设置->更新和安全->对于开发人员。
•[可选]
模拟器HoloLens或
模拟器混合现实 。
从Unity导出UWP Windows Mixed Reality App
1.创建一个Unity项目并导入资源
为此,我们需要导入一些必要的资源。 下载这两个Unity软件包并将其保存在您的计算机上。
收到资源文件后,我们可以创建一个Unity项目。
1.打开Unity编辑器,然后单击“新建”。
2.选择项目的名称(例如,SpeakerPlacement)。
3.打开模板的3D,关闭分析,然后单击
Create project
。
4.要导入Unity软件包,请从菜单中选择资产->导入软件包->自定义软件包,然后导航到先前保存的Holotoolkit.unitypackage软件包。

5.请勿取消选择要导入所有文件的项目。 点击
Import
。

导入过程分为几个阶段,可能需要几分钟,如果包导入成功,则在Projects窗口中Assets文件夹下将出现一个名为Holotoolkit的文件夹。

6.同样,通过重复上述步骤,导入SpatialSoundLab.UnityPackage文件。
7. Assets文件夹现在应该包含两个软件包。

2.项目参数的应用
接下来,我们需要配置Unity项目以为Windows Mixed Reality构建应用程序。 该任务将帮助我们完成“混合现实工具包”。
1.在上方菜单中,转到“混合现实工具包”->“配置”(“混合现实工具包”->“设置”)部分,然后选择“应用混合现实项目设置”。

2.选中“使用特定于Toolkit的InputManager轴”复选框,然后单击“应用”按钮。

作为参考,我们对每个参数进行描述:
- 目标Windows通用UWP(Windows通用UWP构建)-指定Unity的目标平台。 通过选择文件->构建设置,可以查看目标平台的其他选项。
- Direct3D的构建:在“构建设置”部分中为“构建类型”参数设置D3D值。 对于专为封闭式耳机设计的Mixed Reality应用程序,不支持XAML。
- 设置“启用XR”参数与在“播放器设置-> XR设置”部分中设置“支持虚拟现实”参数相同。
- 设置启用.NET脚本等效于为播放器设置->其他设置->脚本后端(玩家设置->其他设置->脚本平台)设置.NET。 IL2CPP选项也可以使用,但是为了在本实验中保持一致,我们建议使用.NET变体。
- 使用特定于Toolkit的InputManager轴参数可更改“编辑”->“项目设置”->“输入管理器”部分的轴,以支持工具箱中使用的所有轴。 换句话说,它包括对Xbox游戏手柄和混合现实控制器的支持。
- 如果仅为沉浸式耳机创建应用程序,则可以选中“目标被遮挡设备”复选框。 由于我们要将应用程序转移到HoloLens设备,因此我们不会选中此复选框。
我们已经提供了对混合现实的支持,但是对于通用Windows平台,还需要进行一些其他设置。
3.在上方菜单中,转到“混合现实工具包”->“配置”(“混合现实工具包”->“设置”)部分,然后选择“应用UWP功能设置”。

4.如果您打算将此应用程序传输到HoloLens设备,请选中“空间感知”复选框。 这将使我们能够绘制环境图并找到可以容纳扬声器的表面。
5.单击“
Apply
按钮保存更改。
6.接下来,使用键盘快捷键Ctrl + Shift + B打开“文件->构建设置”对话框,选择“通用Windows平台”,然后单击“切换平台”。 通过选中场景名称旁边的框并单击“添加打开的场景”按钮,将打开的场景添加到装配中。 确认要保存场景的报价并为其选择合适的名称。 我们称场景为Main。
3.应用场景设置并添加混合现实对象
现在我们需要设置场景。 让我们添加将处理摄像机运动和来自控制器的信号的对象。
1.从顶部菜单转到“混合现实工具包”->“配置”(“混合现实工具包”->“设置”)部分,然后选择“应用混合现实项目设置”。

2.保留所有默认设置为选中状态,然后单击“应用”按钮。

作为参考,我们提供所有这些参数的描述:
- 将预制的MixedRealityCameraParent添加到场景中。 该预制件在原点(0,0,0)上添加了一个标准(主)相机,还增加了对运动和边框控制器的支持。
- 预制InputManager已添加到场景中。 它提供输入支持(注视,手势控制,触摸输入或Xbox游戏手柄)。
- 预制DefaultCursor将添加到场景中。
所有添加的对象将在Unity Hierarchy面板中可见。
这样就完成了项目的设置和准备,以及为MR创建UWP应用程序的场景。
保存场景并进行设计。
3.单击文件->保存场景。 当提示您选择场景的名称时,将其命名为Main(或提供其他合适的名称)。
4.单击文件->保存项目。
注意事项 有关此处使用的所有参数的详细说明,请参见《混合现实》项目设置指南 。4.在耳机上部署应用程序
现在您不需要执行此操作,但是如果您决定构建一个项目,请按照以下说明启动它。
在沉浸式耳机上部署项目1.转到混合现实工具包->构建窗口(混合现实工具包->构建窗口)。
2.单击
Open in Visual Studio
。 此操作将花费几分钟-在这段时间内,将编译所有资源,并将创建或更新Visual Studio解决方案。
注意事项 如果Unity中出现一条消息,提示该项目没有开放的解决方案,并且询问您是否需要完成装配,请选择“是,生成”。3.构建完成后,Unity将启动Visual Studio。
4.在标准Visual Studio工具栏中,将活动解决方案平台从ARM更改为x64。 对于部署目标,必须选择“本地计算机”。

如果您不进行调试,建议您也将构建类型从“调试”更改为“发行”,因为Unity调试构建通常较慢。
5.按下播放按钮启动应用程序。
在HoloLens设备上部署项目在HoloLens设备上部署项目的过程与上述沉浸式头戴式耳机的过程非常相似,唯一的例外是您需要选择其他目标设备并选择x86作为平台。
1.转到混合现实工具包->构建窗口(混合现实工具包->构建窗口)。
2.单击
Open in Visual Studio
。 此操作将花费几分钟-在这段时间内,将编译所有资源,并将创建或更新Visual Studio解决方案。
注意事项 如果Unity中出现一条消息,提示该项目没有开放的解决方案,并且询问您是否需要完成装配,请选择“是,生成”。3.构建完成后,Unity将启动Visual Studio。
4.在标准Visual Studio工具栏中,将活动解决方案平台从ARM更改为x86,然后选择适当的部署目标:
- 如果通过USB进行部署,请选择设备;
- 如果部署是通过Wi-Fi进行的,请选择“远程计算机”并配置远程计算机。

如果您不进行调试,建议您也将构建类型从“调试”更改为“发行”,因为Unity调试构建通常较慢。
5.按下播放按钮启动应用程序。
有关将应用程序发布到Microsoft Store的信息,请参见
Windows Developer网站 。
演讲者安置应用
在用于放置扬声器的“扬声器放置”应用程序中,用户将具有以下选项:
- 使用运动控制器,用户可以传送到虚拟客厅的各个点或在虚拟客厅中移动。
- 您还可以选择扬声器,移动,旋转,打开和关闭扬声器,以及聆听整个房间的空间声音。
以下是我们的模型和音乐资源的列表。
- 预制-> RoomPrefab.prefab-用于沉浸式耳机的虚拟客厅。
- 型号-> Speaker.3DS-扬声器的型号,我们将其转换为可用的预制件。
- 音频-> ChillBlueLagoon.mp3-音乐文件(您可以使用MP3,OGG,WAV或AIFF格式的任何文件)。
其他功能将使用混合现实工具包实现。 该套件的组件将用于增加互操作性。
原来的作者:埃里克·阿尔斯特罗姆(Eric Ahlstrom),巴克莱姆斯(Cbarkerms),麦迪逊·海特