// 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);
    }
    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);
    }
Example #3
0
    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);
    }
Example #4
0
    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 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);
    }