开发
开发
选择平台

空间锚点概览

更新时间: 2025年12月22日

健康与安全

构建混合现实体验时,我们强烈建议您从健康与安全的角度评估内容,为用户提供安全舒适的体验。请先阅读混合现实健康与安全守则,然后再使用此对象示例或我们的呈现平台的任何功能来设计和开发您的应用。开发者应避免发生不当遮挡,当虚拟内容不尊重用户环境的物理性时,会发生这种情况(即,开发者应使用场景将内容放置在空白空间内,或使用深度 API)。不当遮挡会导致对可操作空间的错误感知。
共处会增加共享物理空间中的个体数量,同时会限制其周围环境的可见性。拥挤的体验会带来安全风险。构建共享体验时,要注意游玩区的占用情况。如需了解更多信息,请参阅共享空间锚点健康与安全守则。此外,我们还提供了一个包含健康与安全建议的开发者应用示例,便于您轻松集成。

混合现实工具箱

对于大多数用例,请考虑使用混合现实实用程序包 (MRUK) 的“全局锁定”功能,它使用锚点来方便地进行全局锁定,而您不必直接使用锚点。它采用的方法是,通过巧妙地调整 HMD 姿态,使虚拟对象在实际环境中看起来是全局锁定的,而您无需自己创建锚点或与锚点互动。

什么是空间锚点?

锚点是一个全局锁定的参考框架,它为现实世界中的虚拟对象提供位置和方向。
阅读本页面后,您应能够:
  • 描述空间锚点在混合现实中的功能和用途。
  • 说明使用空间锚点的不同类型游戏和应用程序的互动模型。
  • 描述空间锚点从创建到共享的生命周期。

真实世界示例

您可以用许多方式使用空间锚点。例如,您可以在真实的家具上放置虚拟标记,也可以在真实的窗户上创建进场点,让虚拟角色从中飞过。
下面的图片展示了如何在不同类型的内容(如虚拟玩具、装饰植物和 2D 窗口素材体验)中使用四个空间锚点。
Figure 1: Reuse of anchors for multiple virtual objects.
图 1:为多个虚拟对象重复使用锚点。

用例和互动模型

  1. 运动与休闲游戏:用户可以在客厅、走廊或餐厅等宽敞的区域中玩迷你高尔夫、寻宝游戏和障碍赛等游戏。
  2. 动作游戏:冒险游戏、益智游戏和虚拟密室逃脱游戏可以跨越多个房间,利用整个生活空间。
  3. 增强与装饰:用户可以通过固定网页浏览器选项卡以及天气和新闻小工具,或者添加新家具和装饰品,以虚拟方式改造他们的房屋。
  4. 建造与模拟游戏:可以根据用户的喜好扩大游玩区,以包含赛道、模拟城市和 Rube Goldberg 机械等。
Figure 2: Conceptual representation of an Anchor with orientation and position.
图 2:带方向和位置的锚点概念表示。

空间锚点是如何运作的?

应用程序可以为每个虚拟对象使用一个锚点,也可以选择让多个虚拟对象使用同一个锚点,只要这些对象位于其 3 米覆盖范围内即可。锚点 API 可让用户跨多个会话保留和发现位置,并且可以同步或异步地与其他用户共享。
Figure 3: Classes of use cases using Anchors. Top: Sports and action games Bottom: Augment and Builder.
图 3:使用锚点的用例分类。上:运动与动作游戏 下:增强与建造类游戏。
从互动模型的角度来看,有两种类型的应用程序:用户驱动的移动和应用叙述的移动。
  • 用户驱动的移动涉及一种反应式应用,它会根据用户要使用更多空间的决定来适应或显示新的内容。用例包括:
    • 增强与装饰:用户可以随意扩展到多个空间,使用视频、浏览器选项卡和照片作为装饰。
    • 建造类游戏:用户可以扩展到单个房间之外来建造赛道或模拟城市。
  • 应用叙述的移动涉及一种主动式应用,其中,用户可以在设置过程中或动态地从其环境中选择相关类型的空间。用例包括:
    • 运动与休闲游戏:用户可以最大程度地利用开放空间来一次性布置场景,适合迷你高尔夫或障碍赛。
    • 动作游戏:应用生成游戏玩法并在用户前方创建移动,以增强参与度,这对于冒险游戏和益智游戏非常有用。
Figure 4: Example of an app-driven interaction where the users continues to move through the space to advance through a mini-golf game.
图 4:应用驱动的互动示例,其中,用户不断在空间中移动来推进迷你高尔夫游戏。

空间锚点和场景锚点

一个应用程序可以利用两种类型的锚点:
  • 由应用程序创建和拥有的空间锚点,在其背景环境中保持私有。开发者可以通过在特定位置和地点放置虚拟内容来创建这些锚点,也可以自动化此过程来增强共用位置的本地多玩家游戏会话。
  • 由系统创建和拥有的场景锚点。这些类型的锚点提供对用户环境的洞察信息,包括家具和墙壁的位置和大小。应用程序不能修改这些锚点,但可以在用户允许的情况下访问它们。这些锚点在所有应用中是一致的,并且在系统级别上运行。

锚点生命周期

要在现实世界中放置虚拟内容,请从创建空间锚点开始。然后保存锚点,以便跨多个会话将其保留。在以后的会话中,或者在使用像整个住宅这样的大型空间时,您可以查询并找到已保留的锚点。对于身处相同地点的多个用户共享同一协调系统的应用程序,一个用户可以与其他用户共享锚点,以保持一致的视角和对齐。
在大型空间用例中,系统的应用范围超出了一个房间:
  • 创建和追踪:应用程序可以在整个大型空间(如家庭住宅)中创建和追踪锚点。
  • 保存和擦除:可以保存锚点以便在多个应用会话中使用,并且在不再需要时将其擦除。锚点在本地设备存储空间和 Meta 服务器上的存储空间之间有一种抽象关系。
  • 发现:锚点通过识别用户的周围环境来实现自适应体验。当用户四处移动时,场景锚点和空间锚点变得可访问。在大型空间中,空间发现功能支持用户从任何房间开始体验。当用户在不同房间之间移动时,会发现新路径,并且不同区域的锚点会一起显示出来。
  • 共享:在多个用户之间共享一个空间锚点可以创建一个共享的参考框架。这一共享视角可让用户感知到相同的增强现实,为协作或玩游戏提供了便利。
当用户在这个空间中移动时,所有锚点操作(创建、保留、擦除、共享和发现)都得到支持。
Figure 5: Illustrating the anchors lifecycle.
图 5:锚点生命周期。

详细了解

要开始在 Unity 中开发 Meta Quest,请参阅开始在 Unity 中开发 Meta Quest
您可以在 oculus-samples GitHub 存储库中找到通过 Meta Quest 使用空间锚点的更多示例: