Unreal 中的本地空间定位点

空间定位点以 ARPin 的形式在应用程序会话之间保存真实空间中的全息影像。 ARPin 保存在 HoloLens 的定位点存储中后,便可以在以后的会话中加载,当未连接 Internet 时,这就是理想的备用选项。

注意

UE 4.25 中的定位点函数在 4.26 版中已过时,应替换为更新的函数。

重要

本地定位点存储在设备上,而 Azure 空间定位点存储在云中。 如果你想要使用 Azure 云服务来存储定位点,我们有一个文档可指导你如何集成 Azure 空间定位点。 请注意,你可在同一项目中使用本地定位点和 Azure 定位点,不会发生冲突。

先决条件

重要

空间定位点需要 Microsoft OpenXR 插件。

必须使用 Microsoft OpenXR 插件,可从 Unreal MarketplaceGitHub 获得。

检查定位点存储

在保存或加载定位点之前,需要检查定位点存储是否已准备就绪。 在定位点存储准备就绪之前,调用任何 HoloLens 定位点函数都不会成功。

保存定位点

一旦应用程序具有需要固定到世界的组件,就可以按以下顺序将其保存到定位点存储中:

细分如下:

  1. 在已知位置生成 Actor。

  2. 使用该位置和基于 Actor 的类的名称创建 ARPin

  3. 将 Actor 添加到 ARPin并将引脚保存到 HoloLens 定位点存储

    • 选择的定位点名称必须是唯一的,因此在本示例中是当前时间戳。
  4. 如果定位点成功保存到定位点存储,则可以在 HoloLens 设备门户的“系统”>“映射管理器”>“设备上已保存的定位点文件”下看到定位点

加载定位点

当应用程序启动时,可以使用以下蓝图将组件还原到其定位点位置:

细分如下:

  1. 循环访问定位点存储中的所有定位点。

  2. 按标识生成 Actor。

  3. 将该 Actor 从定位点存储固定到 ARPin

    • 必须按标识生成 Actor,这一点很重要,因为定位点负责根据全息影像的保存位置在世界中重新定位全息影像。 因此,此处添加的任何变形都将增加定位点的偏移量。

还将查询定位点 ID,以便根据定位点的保存名称来生成不同的 Actor。

删除定位点

完成定位点后,可以使用“从 WMRAnchor 存储中删除 ARPin”和“从 WMRAnchor 存储中删除所有 ARPin”组件来清除单个定位点或整个定位点存储

注意

请记住,空间定位点仍处于测试阶段,因此,请务必查看是否有更新的信息和功能。

下一个开发检查点

如果你遵循我们规划的 Unreal 开发历程,则你处于探索 MRTK 核心基础知识的过程之中。 从这里,你可以继续了解下一部分基础知识:

或跳转到混合现实平台功能和 API:

你可以随时返回到 Unreal 开发检查点

另请参阅