HoloLens(第一代)基础知识 100:Unity 入门

重要

混合现实学院教程在制作时考虑到了 HoloLens(第一代)、Unity 2017 和混合现实沉浸式头戴显示设备。 因此,对于仍在寻求这些设备的开发指导的开发人员而言,我们觉得很有必要保留这些教程。 我们不会在这些教程中更新 HoloLens 2 所用的最新工具集或交互相关的内容,因此这些教程可能与较新版本的 Unity 不相符。 我们将维护这些教程,使之持续适用于支持的设备。 已经为 HoloLens 2 发布了一系列新教程

本教程将指导你创建一个使用 Unity 生成的基本混合现实应用。

设备支持

课程 HoloLens 沉浸式头戴显示设备
MR 基础知识:Unity 入门

先决条件

第 1 章 - 创建新项目

要使用 Unity 生成应用,首先需要创建一个项目。 此项目将组织成几个文件夹,其中最重要的文件夹是 Assets。 此文件夹包含从数字内容创建工具(例如 Maya、Max Cinema 4D 或 Photoshop)导入的所有资产、使用 Visual Studio 或你偏好的代码编辑器创建的所有代码,以及当你在编辑器中创作场景、动画和其他 Unity 资产类型时由 Unity 创建的任意数量的内容文件。

为了生成和部署 UWP 应用,Unity 可将项目导出为包含所有必要资产和代码文件的 Visual Studio 解决方案。

  1. 启动 Unity
  2. 选择新建
  3. 输入项目名称(例如“MixedRealityIntroduction”)
  4. 输入一个位置,用于保存项目
  5. 确保已选择“3D”切换开关
  6. 选择“创建项目

祝贺你,现已完成所有设置,接下来可以开始进行混合现实自定义了。

第 2 章 - 设置照相机

Unity 主照相机处理头部跟踪和立体渲染。 需要对主照相机进行几项更改才能在混合现实中使用它。

  1. 选择“文件”>“新建场景”

首先,如果将用户的起始位置设想为 (X: 0, Y: 0, Z: 0),可以更容易地设置应用的布局。 由于主照相机可跟踪用户头部的移动,因此可以通过设置主照相机的起始位置来设置用户的起始位置。

  1. 在“层次结构”面板中选择“主照相机”
  2. 在“检查器”面板中,找到“变换”组件并将位置从“(X: 0, Y : 1, Z: -10)”更改为“(X: 0, Y: 0, Z: 0)”

其次,需要大致考虑一下默认的照相机背景。

对于 HoloLens 应用程序,现实世界应该出现在照相机渲染的所有内容(而不是天空盒纹理)之后

  1. 仍在“层次结构”面板中选中了“主照相机”的情况下,在“检查器”面板中找到“照相机”组件,并在“清除标志”下拉列表中从“天空盒”更改为“纯色”
  2. 选择“背景”颜色选择器,将“RGBA”值更改为 (0, 0, 0, 0)

对于面向沉浸式头戴显示设备的混合现实应用程序,可以使用 Unity 提供的默认天空盒纹理

  1. 仍在“层次结构”面板中选中了“主照相机”的情况下,在“检查器”面板中找到“照相机”组件,并在“清除标志”下拉列表中保留“天空盒”

第三,让我们考虑 Unity 中的近剪裁平面,并防止在用户接近对象或对象接近用户时将对象渲染得离用户的眼睛太近。

对于 HoloLens 应用程序,近剪裁平面可以设置为 HoloLens 建议的 0.85 米

  1. 仍在“层次结构”面板中选中了“主照相机”的情况下,在“检查器”面板中找到“照相机”组件,并将“近剪裁平面”字段从默认的“0.3”更改为 HoloLens 建议的“0.85”

对于面向沉浸式头戴显示设备的混合现实应用程序,可以使用 Unity 提供的默认设置

  1. 仍在“层次结构”面板中选中了“主照相机”的情况下,在“检查器”面板中找到“照相机”组件,并将“近剪裁平面”字段保留为默认的“0.3”

最后,让我们保存到目前为止的进度。 若要保存场景更改,请选择“文件”>“场景另存为”,将场景命名为“Main”,然后选择“保存”

第 3 章 - 指定项目设置

在本章中,我们将指定一些 Unity 项目设置,以帮助我们面向 Windows Holographic SDK 进行开发。 我们还将为应用程序指定一些质量设置。 最后,我们将确保生成目标设置为“通用 Windows 平台”。

Unity 性能和质量设置

HoloLens 的 Unity 质量设置

Unity quality settings for HoloLens

由于在 HoloLens 上保持高帧速率非常重要,因此我们需要优化质量设置以实现最高性能。 有关更详细的性能信息,请参阅针对 Unity 的性能建议

  1. 选择“编辑”>“项目设置”>“质量”
  2. 选择“通用 Windows 平台”徽标下的下拉列表,然后选择“极低”。 当“通用 Windows 平台”列中的框和“极低”行显示为绿色时,即表示已正确应用设置

对于在封闭式显示器上显示的混合现实应用程序,可将质量设置保留其默认值

目标 Windows 10 SDK

目标 Windows Holographic SDK

Target Windows Holographic SDK

需要让 Unity 知道我们尝试导出的应用应该创建沉浸式视图而不是 2D 视图。 为此,可以在面向 Windows 10 SDK 的 Unity 上启用虚拟现实支持。

  1. 转到“编辑”>“项目设置”>“播放器”
  2. 在“检查器”面板中,对于“播放器设置”,请选择“通用 Windows 平台”图标
  3. 展开“XR 设置”组
  4. 在“呈现”部分,选中“支持虚拟现实”复选框,添加新“虚拟现实 SDK 的”列表
  5. 验证列表中是否显示“Windows 混合现实”。 如果没有,请选择列表底部的 + 按钮,然后选择“Windows 混合现实”。

注意

如果未看到“通用 Windows 平台”图标,请仔细检查,确保在安装过程中选择了“通用 Windows 平台生成支持”。 如果没有,可能需要使用正确的 Windows 安装重新安装 Unity。

现已正确应用了所有项目设置。 接下来,我们添加一个全息影像!

第 4 章 - 创建立方体

像在 Unity 中创建任何其他对象一样在 Unity 项目中创建立方体。 可以很方便地在用户面前放置立方体,因为 Unity 的坐标系映射到现实世界 - Unity 中的一米大约就是现实世界中的一米。

  1. 在“层次结构”面板的左上角,选择“创建”下拉菜单并选择“3D 对象”>“立方体”
  2. 在“层次结构”面板中选择新建的立方体
  3. 在“检查器”中找到“变换”组件,将“位置”更改为“(X: 0, Y: 0, Z: 2)”。 这会将立方体定位在用户起始位置前方的 2 米处
  4. 在“变换”组件中,将“旋转”更改为“(X: 45, Y: 45, Z: 45)”,将“比例”更改为“(X: 0.25, Y: 0.25, Z: 0.25)”。 这会将立方体按比例调整到 0.25 米处
  5. 若要保存场景更改,请选择“文件”>“保存场景”

第 5 章 - 通过 Unity 编辑器在设备上进行验证

创建立方体后,我们可以在设备中进行快速检查。 可以直接在 Unity 编辑器中执行此操作。

初始设置

  1. 在开发电脑上的 Unity 中,打开“文件”>“生成设置”窗口
  2. 将“平台”更改为“通用 Windows 平台”,然后单击“切换平台”

在 HoloLens 上使用 Unity Remoting

  1. 在 HoloLens 上,安装并运行从 Windows Store 获取的 Holographic Remoting Player。 在设备上启动该应用程序,它会进入等待状态并显示设备的 IP 地址。 记下 IP。
  2. 打开“窗口”>“XR”>“全息仿真”
  3. 将“仿真模式”从“无”更改为“远程连接到设备”
  4. 在“远程计算机”中,输入前面记下的 HoloLens IP 地址
  5. 单击“连接”。
  6. 确保“连接状态”变为绿色的“已连接”
  7. 现在,可以在 Unity 编辑器中单击“播放”

随后可以在设备和编辑器中查看立方体。 可以暂停、检查对象和调试,就像在编辑器中运行应用一样,因为这就是实际发生的事情,只不过视频、音频和设备输入是通过主机与设备之间的网络来回传输的。

对于其他支持混合现实的头戴显示设备

  1. 使用 USB 数据线和 HDMI 或 DP 数据线将头戴显示设备连接到开发电脑。
  2. 启动混合现实门户,并确保已完成首次运行体验
  3. 在 Unity 中,现在可以按下“播放”按钮。

随后可以在混合现实头戴显示设备和编辑器中看到立方体渲染。

第 6 章 - 从 Visual Studio 生成和部署到设备

我们现在准备将项目编译到 Visual Studio,并部署到目标设备。

导出到 Visual Studio 解决方案

  1. 打开“文件”>“生成设置”窗口
  2. 单击“添加开放式场景”以添加场景
  3. 将“平台”更改为“通用 Windows 平台”,然后单击“切换平台”
  4. 在“通用 Windows 平台”设置中,确保“SDK”为“Universal 10”
  5. 对于“目标设备”,请为封闭式显示器保留设置为“任何设备”,或切换为“HoloLens”
  6. “UWP 生成类型”应为“D3D”
  7. “UWP SDK”可以保留为“最新安装版本”
  8. 单击“生成”
  9. 在文件资源管理器中,单击“新建文件夹”并将文件夹命名为“App”
  10. 选择“App”文件夹后,单击“选择文件夹”按钮
  11. Unity 生成完成后,将出现一个“Windows 文件资源管理器”窗口。
  12. 在文件资源管理器中打开“App”文件夹
  13. 打开生成的 Visual Studio 解决方案(在本示例中为 MixedRealityIntroduction.sln)

编译 Visual Studio 解决方案

最后,编译、部署导出的 Visual Studio 解决方案,并在设备上试用。

  1. 使用 Visual Studio 中的顶部工具栏,将目标从“调试”更改为“发布”,并从“ARM”更改为“X86”

有关部署到设备与部署到仿真器的说明有所不同。 请按照与设置相符的说明进行操作。

通过 Wi-Fi 部署到混合现实设备

  1. 单击“本地计算机”按钮旁边的箭头,并将部署目标更改为“远程计算机”
  2. 输入混合现实设备的 IP 地址,对于 HoloLens,请将“身份验证模式”更改为“通用(未加密协议)”;对于其他设备,请更改为“Windows”
  3. 单击“调试”>“开始执行(不调试)”

对于 HoloLens,如果这是你第一次部署到设备,需要使用 Visual Studio 进行配对

通过 USB 部署到混合现实设备

确保已通过 USB 数据线插入设备。

  1. 对于 HoloLens,请单击“本地计算机”按钮旁边的箭头,并将部署目标更改为“设备”
  2. 若要面向连接到电脑的封闭式设备,请将设置保留为“本地计算机”。 确保混合现实门户正在运行
  3. 单击“调试”>“开始执行(不调试)”

部署到仿真器

  1. 单击“设备”按钮旁边的箭头,然后从下拉列表中选择“HoloLens 仿真器”
  2. 单击“调试”>“开始执行(不调试)”

试用应用

部署应用后,请尝试四处移动立方体,并观察它是否停留在你面前的世界中。

另请参阅