{"_id":"594949e92be16d0026ec0550","category":{"_id":"594949e62be16d0026ec04cf","version":"594949e52be16d0026ec04cd","project":"571fa55ca0acd42000af9545","__v":0,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-07-31T16:56:01.612Z","from_sync":false,"order":1,"slug":"prefabs","title":"Prefabs"},"user":"571fa519db52d01700f5cf3d","parentDoc":null,"project":"571fa55ca0acd42000af9545","version":{"_id":"594949e52be16d0026ec04cd","project":"571fa55ca0acd42000af9545","__v":2,"createdAt":"2017-06-20T16:14:29.816Z","releaseDate":"2017-06-20T16:14:29.816Z","categories":["594949e62be16d0026ec04ce","594949e62be16d0026ec04cf","594949e62be16d0026ec04d0","594949e62be16d0026ec04d1","594949e62be16d0026ec04d2","594949e62be16d0026ec04d3","594949e62be16d0026ec04d4","594949e62be16d0026ec04d5","594949e62be16d0026ec04d6","594949e62be16d0026ec04d7","594949e62be16d0026ec04d8","594949e62be16d0026ec04d9","594949e62be16d0026ec04da","594949e62be16d0026ec04db","594949e62be16d0026ec04dc","594949e62be16d0026ec04dd","594949e62be16d0026ec04de","594949e62be16d0026ec04df","594949e62be16d0026ec04e0","594949e62be16d0026ec04e1","59497219f4a8980024dd0631"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"Kunekune","version_clean":"3.2.0","version":"3.2.0"},"__v":0,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-10-16T08:08:17.124Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":13,"body":"## Overview\n\nPurpose: top-level controller class to handle the display of up to four child PanelMenuItemController items which are displayed as a canvas UI panel.\n\nThis script should be attached to a VRTK_InteractableObject > first child GameObject [PanelMenuController].\nThe [PanelMenuController] must have a child GameObject [panel items container].\nThe [panel items container] must have a Canvas component.\nA [panel items container] can have up to four child GameObject, each of these contains the UI for a panel that can be displayed by [PanelMenuController].\nThey also have the [PanelMenuItemController] script attached to them. The [PanelMenuItemController] script intercepts the controller events sent from this [PanelMenuController] and passes them onto additional custom event subscriber scripts, which then carry out the required custom UI actions.\nTo show / hide a UI panel, you must first pick up the VRTK_InteractableObject and then by pressing the touchpad top/bottom/left/right you can open/close the child UI panel that has been assigned via the Unity Editor panel. Button type UI actions are handled by a trigger press when the panel is open.\n\n## Inspector Parameters\n\n * **Rotate Towards:** The GameObject the panel should rotate towards, which is the Camera (eye) by default.\n * **Zoom Scale Multiplier:** The scale multiplier, which relates to the scale of parent interactable object.\n * **Top Panel Menu Item Controller:** The top PanelMenuItemController, which is triggered by pressing up on the controller touchpad.\n * **Bottom Panel Menu Item Controller:** The bottom PanelMenuItemController, which is triggered by pressing down on the controller touchpad.\n * **Left Panel Menu Item Controller:** The left PanelMenuItemController, which is triggered by pressing left on the controller touchpad.\n * **Right Panel Menu Item Controller:** The right PanelMenuItemController, which is triggered by pressing right on the controller touchpad.\n\n## Class Methods\n\n### ToggleMenu/0\n\n  > `public virtual void ToggleMenu()`\n\n  * Parameters\n   * _none_\n  * Returns\n   * _none_\n\nThe ToggleMenu method is used to show or hide the menu.\n\n### ShowMenu/0\n\n  > `public virtual void ShowMenu()`\n\n  * Parameters\n   * _none_\n  * Returns\n   * _none_\n\nThe ShowMenu method is used to show the menu.\n\n### HideMenu/1\n\n  > `public virtual void HideMenu(bool force)`\n\n  * Parameters\n   * `bool force` - If true then the menu is always hidden.\n  * Returns\n   * _none_\n\nThe HideMenu method is used to hide the menu.\n\n### HideMenuImmediate/0\n\n  > `public virtual void HideMenuImmediate()`\n\n  * Parameters\n   * _none_\n  * Returns\n   * _none_\n\nThe HideMenuImmediate method is used to immediately hide the menu.\n\n## Example\n\n`040_Controls_Panel_Menu` contains three basic interactive object examples of the PanelMenu in use.","excerpt":"","slug":"panel-menu-controller","type":"basic","title":"Panel Menu Controller"}

Panel Menu Controller


## Overview Purpose: top-level controller class to handle the display of up to four child PanelMenuItemController items which are displayed as a canvas UI panel. This script should be attached to a VRTK_InteractableObject > first child GameObject [PanelMenuController]. The [PanelMenuController] must have a child GameObject [panel items container]. The [panel items container] must have a Canvas component. A [panel items container] can have up to four child GameObject, each of these contains the UI for a panel that can be displayed by [PanelMenuController]. They also have the [PanelMenuItemController] script attached to them. The [PanelMenuItemController] script intercepts the controller events sent from this [PanelMenuController] and passes them onto additional custom event subscriber scripts, which then carry out the required custom UI actions. To show / hide a UI panel, you must first pick up the VRTK_InteractableObject and then by pressing the touchpad top/bottom/left/right you can open/close the child UI panel that has been assigned via the Unity Editor panel. Button type UI actions are handled by a trigger press when the panel is open. ## Inspector Parameters * **Rotate Towards:** The GameObject the panel should rotate towards, which is the Camera (eye) by default. * **Zoom Scale Multiplier:** The scale multiplier, which relates to the scale of parent interactable object. * **Top Panel Menu Item Controller:** The top PanelMenuItemController, which is triggered by pressing up on the controller touchpad. * **Bottom Panel Menu Item Controller:** The bottom PanelMenuItemController, which is triggered by pressing down on the controller touchpad. * **Left Panel Menu Item Controller:** The left PanelMenuItemController, which is triggered by pressing left on the controller touchpad. * **Right Panel Menu Item Controller:** The right PanelMenuItemController, which is triggered by pressing right on the controller touchpad. ## Class Methods ### ToggleMenu/0 > `public virtual void ToggleMenu()` * Parameters * _none_ * Returns * _none_ The ToggleMenu method is used to show or hide the menu. ### ShowMenu/0 > `public virtual void ShowMenu()` * Parameters * _none_ * Returns * _none_ The ShowMenu method is used to show the menu. ### HideMenu/1 > `public virtual void HideMenu(bool force)` * Parameters * `bool force` - If true then the menu is always hidden. * Returns * _none_ The HideMenu method is used to hide the menu. ### HideMenuImmediate/0 > `public virtual void HideMenuImmediate()` * Parameters * _none_ * Returns * _none_ The HideMenuImmediate method is used to immediately hide the menu. ## Example `040_Controls_Panel_Menu` contains three basic interactive object examples of the PanelMenu in use.