Near Menu — MRTK3
Near Menu is a common pattern for a group of UI elements that can be manipulated and moved and can follow the user. Since it's loosely coupled with the user, it doesn't disturb the user's interaction with the target content. The user can use the 'Pin' button to world-lock/unlock the menu. The menu can be grabbed and placed at a specific position in the world.
Interaction behavior
- Tag-along: The menu follows you and stays within 30-60 cm range from the user for the near interactions.
- Pin: Using the 'Pin' button, the menu can be world-locked and released.
- Grab and move: The menu is always grabbable and movable. The menu will be pinned (world-locked) when grabbed and released regardless of the previous state.
Example scene and Prefabs
NearMenuExamples.unity scene demonstrates various sizes of near menu configuration examples. You can find the menu examples as prefabs.
Structure
Near Menu prefabs are made with the following MRTK components.
- PressableButton_32x32mm prefab
- Object Bar: Multiple button layout in grid
- Object Manipulator: Grab and move the menu
- Radial View Solver: Follow Me(tag-along) behavior
Scripts
Tag-along behavior is achieved with RadialView solver script.
- Move and Rotate Lerp Time are set to 0.5 for delayed smooth movement, which creates comfortable leashing experience.
- Use Fixed Vertical Position places the menu 35 cm below the user's headset, which allows the user to focus on target content.
- Min and Max Distances places the menu between 30-60 cm from the user for comfortable near-range interactions.
When the user grabs the manipulation bar, it triggers Pin Button's ForceSetToggled, which toggles RadialView. This makes the menu's following behavior start/stop.