练习 - 适用于 HoloLens 2 的 Azure 云服务
在每个连续章节中,你将添加新的 Azure 云服务来扩展应用程序功能和用户体验,同时指导你了解每个 Azure 云服务的基础知识。
注释
本模块系列将重点介绍 HoloLens 2,但由于 Unity 的跨平台性质,大部分课程也适用于桌面和移动应用程序。
应用程序目标
在本模块系列中,你将生成一个 HoloLens 2 应用程序,该应用程序可以检测图像中的对象并查找其空间位置。 我们将这些对象称为 跟踪对象。
用户可以创建一个 Tracked 对象 ,以便通过计算机视觉、空间位置或两者关联一组图像。 所有数据必须保存到云中。
特点
- 基本管理数据和映像
- 图像训练和检测
- 存储空间位置和相关指南
Azure 云服务
你将使用以下 Azure 云服务来实现上述功能:
Azure 存储
你将使用 Azure 存储 来保存数据。 使用 Azure 存储可将数据存储在表中并上传大型二进制文件(如图像)。
Azure 自定义视觉
借助 Azure AI 自定义视觉 ( Azure AI 服务的一部分),可以将一组图像关联到跟踪对象,在创建的集上训练机器学习模型,并检测跟踪的对象。
创建并准备 Unity 项目
在本部分中,你将创建新的 Unity 项目,并准备好进行 MRTK 开发。
首先,按照 HoloLens 2 学习路径中的步骤操作,不包括在设备上构建应用程序的说明,这涉及以下步骤:
- 创建 Unity 项目并为其提供合适的名称,例如 Azure 云教程
- 切换生成平台
- 导入 TextMeshPro Essential 资源
- 导入混合现实工具包
- 配置 Unity 项目
- 创建和配置场景,并为场景指定合适的名称,例如 AzureCloudServices
导入教程资产
按照列出的 顺序下载并导入以下 Unity 自定义包:
导入教程资产后,项目窗口应如下所示:
准备场景
在本部分,你将添加一些教程预制件来准备场景。
在“项目”窗口中,导航到 资源>MRTK.Tutorials.AzureCloudServices>Prefabs>Manager 文件夹。 按住 Ctrl 按钮时,选择 SceneController、 RootMenu 和 DataManager 以选择三个预制件:
SceneController (prefab) 包含两个脚本:SceneController(脚本)和 UnityDispatcher (脚本)。 SceneController 脚本组件包含多个 UX 函数并有助于照片捕获功能,而 UnityDispatcher 是一个帮助程序类,用于允许在 Unity 主线程上执行作。
RootMenu(prefab)是主要的 UI 预制体,它通过各种小脚本组件连接所有 UI 窗口,并控制应用程序的一般用户体验流程。
DataManager (prefab) 负责与 Azure 存储通信,并将在下一教程中进一步介绍。
现在,选择三个预制件后,将它们拖到“层次结构”窗口中,将其添加到场景中:
若要将焦点放在场景中的对象上,可以双击 RootMenu 对象,然后稍微缩小一下。 选择 RootMenu 对象后,将其 转换 组件中的值更改为以下内容:
位置:X = 0.0、Y = 1.6、Z = 0.6
小窍门
如果您发现场景中的显眼图标(例如,带框的 “T” 图标)干扰了注意力,可以通过 将 Gizmos 切换到关闭状态 来隐藏它们。
配置场景
在本部分中,你将将 SceneManager、 DataManager 和 RootMenu 连接在一起,以获取下一个集成 Azure 存储教程的工作场景。
连接对象
在“层次结构”窗口中,选择 DataManager 对象:
在检查器窗口中,找到 DataManager(脚本) 组件。 在数据管理器就绪()事件中,你会看到一个空插槽。 将 SceneController 对象从“层次结构”窗口拖动到 “打开数据管理器就绪”() 事件。
事件的下拉菜单现在处于活动状态。 选择下拉菜单,导航到 SceneController,然后在子菜单中选择 Init () 选项。
在“层次结构”窗口中,选择 SceneController 对象。 你将在检查器中找到 SceneController (脚本)组件。
现在有多个未填充的字段;让我们来改变这一点。 将 DataManager 对象从“层次结构”拖动到“数据管理器”字段,然后将RootMenu>MainMenu GameObject 从“层次结构”拖动到“主菜单”字段。
在“层次结构”窗口中,选择 MRTK XR Rig 对象。 确保已启用 MRTK 语音 子对象。 这样,可以通过说“打开菜单”来打开菜单。
现在,您的场景已为即将推出的教程做好准备。 别忘了把它保存到你的项目中。
准备项目生成管道
注释
在 HoloLens 2 上生成和测试不是强制性的。 如果没有 HoloLens 设备,可以在 HoloLens 2 模拟器 上进行测试。 你可以在 HoloLens.com 购买设备。
在完成场景之前,让我们准备要为 HoloLens 2 生成的项目。
1.添加其他必需功能
在 Unity 菜单中,选择“ 编辑>项目设置...” 以打开“项目设置”窗口。
在“项目设置”窗口中,选择“ 播放器”,然后选择 “发布设置”:
在 “发布设置”中,向下滚动到 “功能 ”部分,然后仔细检查 InternetClient、 麦克风和 SpatialPerception 功能(在教程开始时创建项目时启用的功能)。 然后,启用 InternetClientServer、 PrivateNetworkClientServer 和 网络摄像头 功能:
2.将应用部署到 HoloLens 2
你将无法在 Unity 编辑器的本教程系列中运行你将使用的所有功能。 因此,需要熟悉将应用程序部署到 HoloLens 2 设备或模拟器。
小窍门
有关如何生成 Unity 项目并将其部署到 HoloLens 2 的提醒,请参阅 入门教程 - 生成和部署应用程序 说明。
3.在 HoloLens 2 上运行应用,并按照应用内说明进行作
谨慎
所有 Azure 服务都使用 Internet,因此请确保设备已连接到 Internet。
当应用程序在你的设备上运行时,授予对以下请求的功能的访问权限:
- 麦克风
- 照相机
自定义 视觉 等服务需要这些功能才能正常运行。











