Radial Menu
Overview
This adds a UI element into the world space that can be dropped into a Controller object and used to create and use Radial Menus from the touchpad.
If the RadialMenu is placed inside a controller, it will automatically find a VRTK_ControllerEvents
in its parent to use at the input. However, a VRTK_ControllerEvents
can be defined explicitly by setting the Events
parameter of the Radial Menu Controller
script also attached to the prefab.
The RadialMenu can also be placed inside a VRTK_InteractableObject
for the RadialMenu to be anchored to a world object instead of the controller. The Events Manager
parameter will automatically be set if the RadialMenu is a child of an InteractableObject, but it can also be set manually in the inspector. Additionally, for the RadialMenu to be anchored in the world, the RadialMenuController
script in the prefab must be replaced with VRTK_IndependentRadialMenuController
. See the script information for further details on making the RadialMenu independent of the controllers.
Inspector Parameters
- Buttons: An array of Buttons that define the interactive buttons required to be displayed as part of the radial menu.
- Button Prefab: The base for each button in the menu, by default set to a dynamic circle arc that will fill up a portion of the menu.
- Button Thickness: Percentage of the menu the buttons should fill, 1.0 is a pie slice, 0.1 is a thin ring.
- Button Color: The background colour of the buttons, default is white.
- Offset Distance: The distance the buttons should move away from the centre. This creates space between the individual buttons.
- Offset Rotation: The additional rotation of the Radial Menu.
- Rotate Icons: Whether button icons should rotate according to their arc or be vertical compared to the controller.
- Icon Margin: The margin in pixels that the icon should keep within the button.
- Is Shown: Whether the buttons are shown
- Hide On Release: Whether the buttons should be visible when not in use.
- Execute On Unclick: Whether the button action should happen when the button is released, as opposed to happening immediately when the button is pressed.
- Base Haptic Strength: The base strength of the haptic pulses when the selected button is changed, or a button is pressed. Set to zero to disable.
- Menu Buttons: The actual GameObjects that make up the radial menu.
Example
VRTK/Examples/030_Controls_RadialTouchpadMenu
displays a radial menu for each controller. The left controller uses the Hide On Release
variable, so it will only be visible if the left touchpad is being touched. It also uses the Execute On Unclick
variable to delay execution until the touchpad button is unclicked. The example scene also contains a demonstration of anchoring the RadialMenu to an interactable cube instead of a controller.
Updated less than a minute ago