public void CreateInteractionToggleButton(vrInteraction iInteraction, string iButtonName, vrWidgetMenu iParentMenu, string iButtonHandlerName) { string itName = iInteraction.GetName(); vrWidgetToggleButton button = new vrWidgetToggleButton("VRMenu." + itName + "ToggleButton", iParentMenu, iButtonName, MVRTools.GetCommand(iButtonHandlerName), iInteraction.IsActive()); m_Buttons.Add(itName, button); MVRTools.RegisterObject(this, button); }
private void AddButton(VRMenu iVRMenu) { // Add a button at the start of the menu var button = new vrWidgetButton("VRMenu.MyCustomButton", iVRMenu.menu, "My Menu Item", MVRTools.GetCommand("MyItemCommandHandler")); iVRMenu.menu.SetChildIndex(button, 0); MVRTools.RegisterObject(this, button); // Add a separator below it var separator = new vrWidgetSeparator("VRMenu.MyCustomSeparator", iVRMenu.menu); iVRMenu.menu.SetChildIndex(separator, 1); MVRTools.RegisterObject(this, separator); }
// Start waits on VRMenu creation with a coroutine protected IEnumerator Start() { MVRTools.RegisterCommands(this); // Wait for the menu to be created VRMenu MiddleVRMenu = null; while (MiddleVRMenu == null || MiddleVRMenu.menu == null) { // Wait for VRMenu to be created yield return(null); MiddleVRMenu = FindObjectOfType(typeof(VRMenu)) as VRMenu; } // Add a "Networking" submenu var networkMenu = new vrWidgetMenu("VRMenu.Networking", MiddleVRMenu.menu, "Networking"); MiddleVRMenu.menu.SetChildIndex(networkMenu, 0); MVRTools.RegisterObject(this, networkMenu); // Add a separator below it var separator = new vrWidgetSeparator("", MiddleVRMenu.menu); MiddleVRMenu.menu.SetChildIndex(separator, 2); MVRTools.RegisterObject(this, separator); var networkManager = GetComponent <NetworkManager>(); var defaultAddress = networkManager.networkAddress + ":" + networkManager.networkPort; m_StartHostButton = new vrWidgetButton("VRMenu.Networking.StartNetworkHost", networkMenu, "Start host (Server and client)", MVRTools.GetCommand("NetworkStartHost")); MVRTools.RegisterObject(this, m_StartHostButton); m_ConnectToLocalServerButton = new vrWidgetButton("VRMenu.Networking.ConnectToDefaultServer", networkMenu, "Connect to default server (" + defaultAddress + ")", MVRTools.GetCommand("NetworkConnectToDefaultServer")); MVRTools.RegisterObject(this, m_ConnectToLocalServerButton); m_DisconnectButton = new vrWidgetButton("VRMenu.Networking.Disconnect", networkMenu, "Disconnect", MVRTools.GetCommand("NetworkDisconnect")); MVRTools.RegisterObject(this, m_DisconnectButton); }
protected void Start() { // Retrieve the VRManager VRManagerScript[] foundVRManager = FindObjectsOfType(typeof(VRManagerScript)) as VRManagerScript[]; if (foundVRManager.Length != 0) { m_VRManager = foundVRManager[0]; } else { MVRTools.Log("[X] VRMenu: impossible to retrieve the VRManager."); return; } // Start listening to MiddleVR events var listener = new vrEventListener(EventListener); MiddleVR.VRInteractionMgr.AddEventListener(listener); MVRTools.RegisterObject(this, listener); // Register commands MVRTools.RegisterCommands(this); VRWebView webViewScript = GetComponent <VRWebView>(); if (webViewScript == null) { MVRTools.Log(1, "[X] VRMenu does not have a WebView."); return; } m_GUIRendererWeb = new vrGUIRendererWeb("", webViewScript.webView); MVRTools.RegisterObject(this, m_GUIRendererWeb); m_Menu = new vrWidgetMenu("VRMenu.VRManagerMenu", m_GUIRendererWeb); MVRTools.RegisterObject(this, m_Menu); // Navigation m_NavigationOptions = new vrWidgetMenu("VRMenu.NavigationOptions", m_Menu, "Navigation"); MVRTools.RegisterObject(this, m_NavigationOptions); CreateInteractionToggleButton(MiddleVR.VRInteractionMgr.GetInteraction("InteractionNavigationWandJoystick"), "Joystick", m_NavigationOptions, "NavigationJoystickHandler"); CreateInteractionToggleButton(MiddleVR.VRInteractionMgr.GetInteraction("InteractionNavigationElastic"), "Elastic", m_NavigationOptions, "NavigationElasticHandler"); CreateInteractionToggleButton(MiddleVR.VRInteractionMgr.GetInteraction("InteractionNavigationGrabWorld"), "Grab The World", m_NavigationOptions, "NavigationGrabWorldHandler"); var navigationSeparator = new vrWidgetSeparator("VRMenu.NavigationSeparator", m_NavigationOptions); MVRTools.RegisterObject(this, navigationSeparator); var flyCheckbox = new vrWidgetToggleButton("VRMenu.FlyCheckbox", m_NavigationOptions, "Fly", MVRTools.GetCommand("FlyCheckboxHandler"), m_VRManager.Fly); MVRTools.RegisterObject(this, flyCheckbox); var collisionsCheckbox = new vrWidgetToggleButton("VRMenu.CollisionsCheckbox", m_NavigationOptions, "Navigation Collisions", MVRTools.GetCommand("CollisionsCheckboxHandler"), m_VRManager.NavigationCollisions); MVRTools.RegisterObject(this, collisionsCheckbox); // Manipulation m_ManipulationOptions = new vrWidgetMenu("VRMenu.ManipulationOptions", m_Menu, "Manipulation"); MVRTools.RegisterObject(this, m_ManipulationOptions); CreateInteractionToggleButton(MiddleVR.VRInteractionMgr.GetInteraction("InteractionManipulationRay"), "Ray", m_ManipulationOptions, "ManipulationRayHandler"); CreateInteractionToggleButton(MiddleVR.VRInteractionMgr.GetInteraction("InteractionManipulationHomer"), "Homer", m_ManipulationOptions, "ManipulationHomerHandler"); var manipulationSeparator = new vrWidgetSeparator("VRMenu.ManipulationSeparator", m_ManipulationOptions); MVRTools.RegisterObject(this, manipulationSeparator); var returnObjectsCheckbox = new vrWidgetToggleButton("VRMenu.ReturnObjectsCheckbox", m_ManipulationOptions, "Return Objects", MVRTools.GetCommand("ReturnObjectsCheckboxHandler"), m_VRManager.ManipulationReturnObjects); MVRTools.RegisterObject(this, returnObjectsCheckbox); // Virtual Hand m_VirtualHandOptions = new vrWidgetMenu("VRMenu.VirtualHandOptions", m_Menu, "Virtual Hand"); MVRTools.RegisterObject(this, m_VirtualHandOptions); CreateInteractionToggleButton(MiddleVR.VRInteractionMgr.GetInteraction("InteractionVirtualHandGogo"), "Gogo", m_VirtualHandOptions, "VirtualHandGogoButtonHandler"); // General var generalSeparator = new vrWidgetSeparator("VRMenu.GeneralSeparator", m_Menu); MVRTools.RegisterObject(this, generalSeparator); var generalOptions = new vrWidgetMenu("VRMenu.GeneralOptions", m_Menu, "General Options"); MVRTools.RegisterObject(this, generalOptions); var framerateCheckbox = new vrWidgetToggleButton("VRMenu.FramerateCheckbox", generalOptions, "Show Frame Rate", MVRTools.GetCommand("FramerateCheckboxHandler"), m_VRManager.ShowFPS); MVRTools.RegisterObject(this, framerateCheckbox); var proxiWarningCheckbox = new vrWidgetToggleButton("VRMenu.ProxiWarningCheckbox", generalOptions, "Show Proximity Warning", MVRTools.GetCommand("ProxiWarningCheckboxHandler"), m_VRManager.ShowScreenProximityWarnings); MVRTools.RegisterObject(this, proxiWarningCheckbox); // Reset and Exit var resetButtonMenu = new vrWidgetMenu("VRMenu.ResetButtonMenu", m_Menu, "Reset Simulation"); MVRTools.RegisterObject(this, resetButtonMenu); var resetCurrentButton = new vrWidgetButton("VRMenu.ResetCurrentButton", resetButtonMenu, "Reload current level", MVRTools.GetCommand("ResetCurrentButtonHandler")); MVRTools.RegisterObject(this, resetCurrentButton); var resetZeroButton = new vrWidgetButton("VRMenu.ResetZeroButton", resetButtonMenu, "Reload level zero", MVRTools.GetCommand("ResetZeroButtonHandler")); MVRTools.RegisterObject(this, resetZeroButton); var exitButtonMenu = new vrWidgetMenu("VRMenu.ExitButtonMenu", m_Menu, "Exit Simulation"); MVRTools.RegisterObject(this, exitButtonMenu); var exitButton = new vrWidgetButton("VRMenu.ExitButton", exitButtonMenu, "Yes, Exit Simulation", MVRTools.GetCommand("ExitButtonHandler")); MVRTools.RegisterObject(this, exitButton); }
private void Start() { // Automatically register all methods with the [VRCommand] attribute MVRTools.RegisterCommands(this); // Create GUI VRWebView webViewScript = GetComponent <VRWebView>(); if (webViewScript == null) { MVRTools.Log(0, "[X] VRGUIMenuSample does not have a WebView."); enabled = false; return; } var GUIRendererWeb = new vrGUIRendererWeb("", webViewScript.webView); // Register the object so the garbage collector does not collect it after this method. // The object will be disposed when the GameObject is destroyed. MVRTools.RegisterObject(this, GUIRendererWeb); var menu = new vrWidgetMenu("GUIMenuSample.MainMenu", GUIRendererWeb); MVRTools.RegisterObject(this, menu); var button1 = new vrWidgetButton("GUIMenuSample.Button1", menu, "Button", MVRTools.GetCommand("ButtonHandler")); MVRTools.RegisterObject(this, button1); var separator = new vrWidgetSeparator("GUIMenuSample.Separator1", menu); MVRTools.RegisterObject(this, separator); m_Checkbox = new vrWidgetToggleButton("GUIMenuSample.Checkbox", menu, "Toggle Button", MVRTools.GetCommand("CheckboxHandler"), true); MVRTools.RegisterObject(this, m_Checkbox); var submenu = new vrWidgetMenu("GUIMenuSample.SubMenu", menu, "Sub Menu"); submenu.SetVisible(true); MVRTools.RegisterObject(this, submenu); var radio1 = new vrWidgetRadioButton("GUIMenuSample.Radio1", submenu, "Huey", MVRTools.GetCommand("RadioHandler"), "Huey"); MVRTools.RegisterObject(this, radio1); var radio2 = new vrWidgetRadioButton("GUIMenuSample.Radio2", submenu, "Dewey", MVRTools.GetCommand("RadioHandler"), "Dewey"); MVRTools.RegisterObject(this, radio2); var radio3 = new vrWidgetRadioButton("GUIMenuSample.Radio3", submenu, "Louie", MVRTools.GetCommand("RadioHandler"), "Louie"); MVRTools.RegisterObject(this, radio3); var picker = new vrWidgetColorPicker("GUIMenuSample.ColorPicker", menu, "Color Picker", MVRTools.GetCommand("ColorPickerHandler"), new vrVec4(0, 0, 0, 0)); MVRTools.RegisterObject(this, picker); var slider = new vrWidgetSlider("GUIMenuSample.Slider", menu, "Slider", MVRTools.GetCommand("SliderHandler"), 50.0f, 0.0f, 100.0f, 1.0f); MVRTools.RegisterObject(this, slider); vrValue listContents = vrValue.CreateList(); listContents.AddListItem("Item 1"); listContents.AddListItem("Item 2"); var list = new vrWidgetList("GUIMenuSample.List", menu, "List", MVRTools.GetCommand("ListHandler"), listContents, 0); MVRTools.RegisterObject(this, list); }