练习 - 电脑全息远程处理入门

已完成

欢迎学习 HoloLens 2 教程。 本教程将介绍如何创建混合现实体验,该体验具有 UI 元素、3D 模型操作、模型剪辑和眼动跟踪功能。 在第二个教程中,你将了解如何创建用于全息远程处理的电脑应用,以便随时连接 HoloLens 2 并以 3D 形式直观呈现应用。

若要成功完成本教程,应具备 Unity 和混合现实工具包 (MRTK) 的一些基本知识。 如果没有,建议先完成入门指南教程,然后再继续。

创建和准备 Unity 项目

在本部分,你将创建一个新的 Unity 项目,并为 MRTK 开发做好准备。

转到 HoloLens 2 基础知识路径并完成那里的模块,但在到达 HoloLens 2 模块时停止。 完成这些说明后,你就已经完成以下操作:

  1. 创建 Unity 项目并提供合适的名称,例如电脑全息远程处理
  2. 切换生成平台.
  3. 导入 TextMeshPro Essential 资源。
  4. 导入混合现实工具包并配置 Unity 项目。
  5. 创建并设置场景,然后为其提供合适的名称,例如电脑全息远程处理。

导入教程资产

下载并导入 MRTK.HoloLens2.Unity.Tutorials.Assets.PCHolographicRemoting.3.0.0.unitypackage

提示

有关如何导入 Unity 自定义包的提示,可参阅导入混合现实工具包说明

导入教程资产后,“项目”窗口应如下所示:

Screenshot of Project window.

配置和准备场景

在本部分,你将通过添加一些教程 prefab 来准备场景。

  1. 首先,由于某些模型采用 Unity 本身不支持的 glTF 格式,因此我们需要安装允许导入它们的包。

    要安装开源 glTFast 库,请下载并运行此文件:https://package-installer.glitch.me/v1/installer/OpenUPM/com.atteneder.gltfast?registry=https%3A%2F%2Fpackage.openupm.com&scope=com.atteneder

    Screenshot of importing glTFast.

    选择导入

    Screenshot of new scope registry imported.

    选择“关闭” 。

  2. 在“项目”窗口中,导航到“资产”>“MRTK.Tutorials.PCHolograhicRemoting”>“Prefabs”文件夹。 选择“SceneContent”预制件,并将其拖到“层次结构”窗口的底部

    Screenshot of Adding prefabs 2.

    要从摄像头的视角查看场景,请在“层次结构”窗口中右键单击“主摄像头”对象,然后选择“将视图与所选项对齐”

    Screenshot of Focus objects on scene.

    提示

    如果觉得场景中的大图标会分散注意力(例如大框“T”图标),则可以通过将 Gizmos 切换到“关闭”位置来隐藏它们

配置按钮以操作场景

在本部分,你将向场景中添加脚本并创建按钮事件,用于演示模型切换和剪辑功能的基础。

配置可按按钮(脚本)组件

  1. 在“层次结构”窗口中,展开“SceneContent”和“ButtonParent”对象并选择“下一步”按钮。 在“检查器”窗口中,找到“可按按钮”组件,然后选择“OnClick ()”事件下的加号图标 (+)

    Screenshot of expanding the Interactable script.

  2. 在“层次结构”窗口中仍选中“NextButton”对象的情况下,将“ButtonParent”对象从“层次结构”窗口拖动到刚刚添加的事件的空“None (对象)”字段中,使 ButtonParent 对象侦听来自此按钮的按钮单击事件:

    Screenshot of Adding ButtonParent to the None Object.

  3. 选择同一事件的“无函数”下拉菜单,然后选择“ViewButtonControl”>“NextModel ()”,将 NextModel () 函数设置为按下按钮时触发的操作

    Screenshot of selecting ViewButtonControl and NextModel.

配置其余按钮

  • 对于剩余的每个按钮,请完成上述的过程,将函数分配给“OnClick ()”事件:

    • 对于 PreviousButton 对象,请分配 ViewButtonControl>PreviousModel () 函数。
    • 对于 ClippingButton,请选择 ToggleButton>ToggleClipping () 函数。

配置视图按钮控件(脚本)和切换按钮(脚本)组件

此时,按钮配置为演示模型切换和剪辑功能。 接下来,将 3D 模型添加到场景中,将剪辑对象添加到脚本。

我们提供了 6 个不同的 3D 模型进行演示。 展开 ModelParent 对象以公开这些模型。

  1. 在“层次结构”窗口中仍选中 ButtonParent 对象的情况下,在检查器窗口中找到“视图按钮控件(脚本)”组件并展开“模型”变量 。

    在“大小”字段中,输入你希望在场景中拥有的 3D 模型数量(本例中为 6 个)。 这将创建用于添加新 3D 模型的字段。

    Screenshot of entering the number of 3D models.

  2. 将 ModelParent 对象的每个子对象拖动到这些字段中。

    Screenshot of dragging and drop each child object.

  3. 将 ClippingObjects 对象从“层次结构”窗口拖到“切换按钮(脚本)”组件的“剪辑对象”字段。

    注意

    仅停留在 ButtonParent 对象中。

    Screenshot of dragging and drop clipping object.

  4. 在“层次结构”窗口中,选择“ClippingObjects”预制件并在“检查器”窗口中启用它以打开“剪辑对象”

配置剪辑对象以启用剪辑功能

在本部分,你会将 MarsCuriosityRover 对象的子对象呈现器添加到单个剪辑对象中,以演示 MarsCuriosityRover 模型的剪辑。

在“层次结构”窗口中,展开 ClippingObjects 对象,公开将在此项目中使用的三个不同剪辑对象。

  1. 要配置“ClippingSphere”对象,请将其选中,然后在“检查器”窗口中添加“剪辑球面”组件。 接下来,在“大小”字段中输入需要为 3D 模型添加的呈现器数。 在本例中,为 MarsCuriosityRover 子对象添加“10”。 这将创建用于添加呈现器的字段。 接下来,将 MarsCuriosityRover 对象的子模型对象拖动到这些字段中。

    Screenshot of configuring Clipping Objects to enable clipping feature.

  2. 通过在“层次结构”窗口中启用“ClippingObjects”预制件,确保“剪辑对象”处于打开状态