你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:在 Unity 中使用 Azure Object Anchors 创建 HoloLens 应用
本快速入门介绍如何创建使用 Azure Object Anchors 的 Unity HoloLens 应用。 Azure Object Anchors 是一项托管的云服务,它将 3D 资产转换为 AI 模型,以便为 HoloLens 启用对象感知混合现实体验。 完成本教程后,你将拥有一个使用 Unity 生成的 HoloLens 应用,该应用可检测到物理世界中的物体。
将了解如何执行以下操作:
- 准备 Unity 生成设置。
- 导出 HoloLens Visual Studio 项目。
- 在 HoloLens 2 设备上部署并运行应用。
先决条件
若要完成本快速入门,请确保具备以下项:
- 环境中存在一个物理对象及其 3D 模型(CAD 或扫描的)。
- 安装了以下内容的 Windows 计算机:
- 用于 Windows 的 Git
- 包含“通用 Windows 平台开发”工作负荷和 Windows 10 SDK(10.0.18362.0 或更高版本)组件的 Visual Studio 2019
- Unity 2019.4
- 已启用开发人员模式的最新 HoloLens 2 设备。
- 若要在 HoloLens 上更新为最新版本,请打开“设置”应用,转到“更新和安全”,然后选择“检查更新”。
创建 Object Anchors 帐户
首先,需要创建一个 Object Anchors 服务帐户。
转到 Azure 门户,然后选择“创建资源”。
搜索“Object Anchors”资源。
搜索“Object Anchors”。
在搜索结果中的“Object Anchors”资源中,选择“创建”->“Object Anchors”。
在“Object Anchors 帐户”对话框中:
- 输入唯一的资源名称。
- 选择要将资源附加到的订阅。
- 创建资源组或使用现有资源组。
- 选择希望资源所在的区域。
选择“创建”开始创建资源。
创建资源后,选择“转到资源”。
在“概述”页面上:
记下帐户域。 稍后需要用到此信息。
记下帐户 ID。 稍后需要用到此信息。
转到“访问密钥”页,并记下主密钥。 稍后需要用到此信息。
设置设备
若要将应用部署到 HoloLens,需要将 HoloLens 与计算机配对。
- 在 HoloLens 中,导航到面向开发人员的 设置 -> 更新和安全性>。
- 单击“配对”,将屏幕保持打开状态,直到在第一次部署期间将 PIN 输入到 Visual Studio 中。
上传模型
在运行应用之前,需要使模型可供应用使用。 如果尚无 Object Anchors 模型,请按照创建模型中的说明进行操作,以创建一个模型。 然后,返回此处。
打开 HoloLens 的电源并将其连接到开发设备 (PC) 后,按照以下步骤将模型上传到 HoloLens 上的“3D 对象”文件夹:
同时按 Ctrl 和 C (Ctrl + C),选择并复制要使用的模型。
同时按 Windows 徽标键和 E (Win + E) 启动文件资源管理器。 你应会在左窗格中看到 HoloLens 与其他驱动器和文件夹一起列出。
点击 HoloLens 链接,在右窗格中显示 HoloLens 设备上的存储。
在文件资源管理器中,转到“内部存储”>“3D 对象”。 现在,可以通过同时按 Ctrl 键和 V (Ctrl + V) 将模型粘贴到“3D 对象”文件夹中。
打开示例项目
通过运行以下命令克隆示例存储库:
git clone https://github.com/Azure/azure-object-anchors.git
cd ./azure-object-anchors
下一步是下载适用于 Unity 的 Azure Object Anchors 包。
在此处找到适用于 Unity (com.microsoft.azure.object-anchors.runtime
) 的 Azure Object Anchors 包。 选择所需的版本,并使用“下载”按钮下载该包。
在 Unity 中,打开 quickstarts/apps/unity/basic
项目。
按照此处的说明,使用 Unity 包管理器导入已下载到 Unity 项目中的 Azure Object Anchors 包。
配置帐户信息
接下来是将应用配置为使用你的帐户信息。 记下“创建 Object Anchors 帐户”部分中的“帐户密钥”、“帐户 ID”和“帐户域”值 。
在“项目”窗格中,转到 Assets\AzureObjectAnchors.SDK\Resources
。
选择“ObjectAnchorsConfig”。 在“检查器”窗格中,输入 Account Key
作为“Object Anchors 帐户密钥”的值,输入 Account ID
作为“Object Anchors 帐户 ID”的值,然后输入 Account Domain
作为“Object Anchors 帐户域”的值 。
生成并运行应用
生成示例场景
在 Unity 编辑器中,导航到“Assets/MixedReality.AzureObjectAnchors/Scenes”,然后打开“AOASampleScene”,并将其添加到“场景生成”列表中。
选择“文件”->“生成设置”。 依次选择“通用 Windows 平台”、“切换平台”。 如果 Unity 编辑器指出需要先下载某些组件,请下载并安装这些组件。 按照下面的屏幕截图配置生成设置。 确保只有“AOASampleScene”旁边有一个选中标记:不应包含所有其他场景。
选择“生成”并选择一个输出文件夹。 现在可以在输出文件夹中生成 VS 项目。
生成并部署应用
打开 Unity 生成的 .sln
文件。 将生成配置更改为以下配置。
接下来,需要配置“远程计算机 IP 地址”,以便部署和调试应用。
右键单击“应用”项目,然后选择“属性”。 在“属性”页中,选择“配置属性”->“调试”。 将“计算机名称”值更改为 HoloLens 设备的 IP 地址,然后单击“应用”。
关闭“属性”页。 单击“远程计算机”。 应用应开始生成并部署到远程设备。 请确保设备处于活动状态。
在 Unity 初始屏幕后,你将看到一条消息,指示对象观察程序已经初始化。
应用在当前视野中查找对象,然后在检测到对象后进行跟踪。 当某个实例与用户的位置相距 6 米时,它将被删除。 调试文本显示有关实例的详细信息,例如 ID、更新的时间戳和表面覆盖率。
疑难解答
提示
如果未检测到对象,则可以尝试以下步骤:
- 仔细检查你为对象使用的是否是正确的模型。
- 可视化搜索区域并确保它涵盖目标对象。
- 尝试降低
MinSurfaceCoverage
。 - 在 Windows 设备门户中,单击“视图”->“3D 视图”,并验证扫描是否已完成。