近菜单 - MRTK3

Near Menu

“近菜单”是一组 UI 元素的常见模式,可以操作和移动,并可以关注用户。 由于它与用户松散耦合,因此不会干扰用户与目标内容的交互。 用户可以使用“固定”按钮来锁定/解锁菜单。 菜单可以抓取并放置在世界上的特定位置。

对于最常用的操作,请考虑使用 手菜单。 近菜单更适合不太常用的操作,因为它可以承载更大的内容和更大的按钮,并且可以被动地关注用户外出。

注意

手菜单预制件当前使用非画布控件生成。 它们很快就会使用 Canvas 组件 和自动布局系统重新生成,如 按钮组 文档中所述。

交互行为

  • 标记:菜单遵循你,并停留在与用户之间的 30-60 厘米范围内,以便进行接近的交互。
  • 固定:通过使用“固定”按钮,可以全局锁定并释放菜单。
  • 抓取和移动:菜单始终是可抓取和可移动的。 无论以前的状态如何,菜单都将固定 (世界锁定) 。

示例场景和 Prefabs

NearMenuExamples.unity 场景演示了各种大小的近菜单配置示例。 可以将菜单示例查找为 prefabs。

Near Menu Example Scene

  • NearMenu3x1.prefab
  • NearMenu3x2.prefab
  • NearMenu3x3.prefab
  • NearMenu4x1.prefab
  • NearMenu4x2.prefab

结构

使用以下 MRTK 组件进行菜单预制。

Near Menu Prefab

脚本

使用 RadialView 求解器脚本实现沿标记行为。

  • 移动和旋转 Lerp 时间 设置为 0.5,延迟平滑移动,这创造了舒适的勒什体验。
  • 使用“固定垂直位置” 将菜单放置在用户头戴显示设备下方 35 厘米处,使用户能够专注于目标内容。
  • 最小和最大距离 将菜单放置在用户 30-60 厘米之间,以便进行舒适的近距离交互。

RadialView

当用户抓取操作栏时,它会触发 Pin Button 的 ForceSetToggled,这会切换 RadialView。 这使得菜单的以下行为启动/停止。

Manipulation Bar 1

Manipulation Bar 2