This plugin is a simple radial menu that can be used in desktop and VR mode to trigger actions.
I built this as I wanted a really quick way to trigger some behavior with a single button press, without buttons all over the UI that I found to break immersion. It won't win any design awards, but it works well enough.
Features
You can add a default menu to the scene, or individual atoms can have their own menu. If you point at an atom with a menu defined, it will display that menu. If no atom menu is hit it shows the default menu.
Default Menu
Atom Context Menu
For example, a video player can have a menu with play/pause/stop, or a person Atom with various poses, while the default menu can have other global options like "Start Scene", "Scene 2", etc.
You can define up to 6 menu items.
You can change various settings from the settings tab (only available on RadialMenu.cslist, not menu targets)
Settings:
Note: By default, the menu is only shown in Play mode so it does not interfere with editing. You can change this in the settings tab.
Desktop
To open the menu, hit the R key. Note: You can rebind the menu key using AcidBubbles excellent Keybindings plugin.
The Menu will open, hover your mouse to the selected item for a second to select it. Releasing the 'R' key will cancel the menu, as will making no selection.
VR
To open the menu, hit the action button (A/X on Quest 3 controller).
Point at the desired menu item for a second to select it. The menu will close if no selection is made.
Installation
Create an Empty Atom in your scene and add RadialMenu.cslist to it. This will be the default menu for the scene.
Configure the menu items and triggers as desired.
For atom specific menus, add the RadialMenuTarget.cslist to the atom you want to have a menu. Configure the menu items and triggers as desired.
## Known Limitations
- SubScenes (or Parenting) does not work with radial menu. If the atom is in a subscene, the menu will not be displayed.
- The target atom requires a collider. If the atom does not have a collider (eg Empty, SimpleSign), the menu will display. You can work around this by using a CollisionTrigger and attaching RadialMenuTarget.cslist to that instead.
## Credits
MacGruber - for Utils Code
14mhz - for the excellent Tabbed UI control
Many other talented plugin creators whose code I referred to learn the ways of VAM
I built this as I wanted a really quick way to trigger some behavior with a single button press, without buttons all over the UI that I found to break immersion. It won't win any design awards, but it works well enough.
Features
You can add a default menu to the scene, or individual atoms can have their own menu. If you point at an atom with a menu defined, it will display that menu. If no atom menu is hit it shows the default menu.
Default Menu
Atom Context Menu
For example, a video player can have a menu with play/pause/stop, or a person Atom with various poses, while the default menu can have other global options like "Start Scene", "Scene 2", etc.
You can define up to 6 menu items.
You can change various settings from the settings tab (only available on RadialMenu.cslist, not menu targets)
Settings:
- Visible in Edit Mode - shows the menu when in edit mode. Off by default as in VR it competes with the Action button (button options are limited in VR sadly)
- Controller - in VR whether to use the Left, Right or either controller to open the menu
- Select Time - how quickly the menu select is triggered
- Cancel Time - how long the menu remains open if no selection is made.
Note: By default, the menu is only shown in Play mode so it does not interfere with editing. You can change this in the settings tab.
Desktop
To open the menu, hit the R key. Note: You can rebind the menu key using AcidBubbles excellent Keybindings plugin.
The Menu will open, hover your mouse to the selected item for a second to select it. Releasing the 'R' key will cancel the menu, as will making no selection.
VR
To open the menu, hit the action button (A/X on Quest 3 controller).
Point at the desired menu item for a second to select it. The menu will close if no selection is made.
Installation
Create an Empty Atom in your scene and add RadialMenu.cslist to it. This will be the default menu for the scene.
Configure the menu items and triggers as desired.
For atom specific menus, add the RadialMenuTarget.cslist to the atom you want to have a menu. Configure the menu items and triggers as desired.
## Known Limitations
- SubScenes (or Parenting) does not work with radial menu. If the atom is in a subscene, the menu will not be displayed.
- The target atom requires a collider. If the atom does not have a collider (eg Empty, SimpleSign), the menu will display. You can work around this by using a CollisionTrigger and attaching RadialMenuTarget.cslist to that instead.
## Credits
MacGruber - for Utils Code
14mhz - for the excellent Tabbed UI control
Many other talented plugin creators whose code I referred to learn the ways of VAM