Example #1
0
    public void OpenMenu(Menu instance)
    {
        if (menuStack.Contains(instance))
        {
            menuStack.Remove(instance);
        }

        // De-activate top menu
        if (menuStack.Count > 0)
        {
            if (instance.DisableMenusUnderneath)
            {
                //foreach (var menu in menuStack)
                //{
                //    menu.gameObject.SetActive(false);

                //    if (menu.DisableMenusUnderneath)
                //        break;
                //}

                for (int i = menuStack.Count - 1; i >= 0; i--)
                {
                    menuStack.ElementAt(i).gameObject.SetActive(false);

                    if (menuStack.ElementAt(i).DisableMenusUnderneath)
                    {
                        break;
                    }
                }
            }

            var topCanvas      = instance.GetComponent <Canvas>();
            var previousCanvas = menuStack.Peek().GetComponent <Canvas>();
            topCanvas.sortingOrder = previousCanvas.sortingOrder + 1;
        }

        menuStack.Push(instance);

        instance.transform.position = vrCamera.position + vrCamera.forward * distanceToCamera;
        instance.transform.rotation = vrCamera.rotation;
    }
    public void OpenMenu(TutorialMenu instance)
    {
        if (menuStack.Contains(instance))
        {
            menuStack.Remove(instance);
        }

        // De-activate top menu
        if (menuStack.Count > 0)
        {
            CloseMenu(menuStack.ElementAt(0));
        }

        menuStack.Push(instance);

        instance.transform.position = vrCamera.position + vrCamera.forward * distanceToCamera;
        instance.transform.rotation = vrCamera.rotation;
    }