Independent Radial Menu Controller

extends VRTK_RadialMenuController


Allows the RadialMenu to be anchored to any object, not just a controller.

Prefab Usage:

  • Place the VRTK/Prefabs/RadialMenu/RadialMenu prefab as a child of the GameObject to associate the Radial Menu with.
  • Position and scale the menu by adjusting the transform of the RadialMenu empty.
  • Replace VRTK_RadialMenuController with VRTK_IndependentRadialMenuController that is located on the RadialMenu/RadialMenuUI/Panel GameObject.
  • Ensure the parent object has the VRTK_InteractableObject script.
  • Verify that Is Usable and Hold Button to Use are both checked on the VRTK_InteractableObject.
  • Attach VRTK_InteractTouch and VRTK_InteractUse scripts to the objects that will activate the Radial Menu (e.g. the Controllers).

Inspector Parameters

  • Events Manager: If the RadialMenu is the child of an object with VRTK_InteractableObject attached, this will be automatically obtained. It can also be manually set.
  • Add Menu Collider: Whether or not the script should dynamically add a SphereCollider to surround the menu.
  • Collider Radius Multiplier: This times the size of the RadialMenu is the size of the collider.
  • Hide After Execution: If true, after a button is clicked, the RadialMenu will hide.
  • Offset Multiplier: How far away from the object the menu should be placed, relative to the size of the RadialMenu.
  • Rotate Towards: The object the RadialMenu should face towards. If left empty, it will automatically try to find the Headset Camera.

Class Methods


public virtual void UpdateEventsManager()

  • Parameters
    • none
  • Returns
    • none

The UpdateEventsManager method is used to update the events within the menu controller.


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.