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; }