Exemple #1
0
 private void SetActiveUI(UILayer element)
 {
     uiPool[element].gameObject.SetActive(true);
     Time.timeScale   = element.uiTimeScale;
     Cursor.lockState = element.cursorLock;
     Cursor.visible   = (Cursor.lockState != CursorLockMode.Locked);
     uiStack.Push(element);
 }
Exemple #2
0
 public void CloseUI()
 {
     if (uiStack.Count > 1 && uiStack.Peek().isCloseable)
     {
         UILayer element = uiStack.Pop();
         uiPool[element].gameObject.SetActive(false);
         SetActiveUI(uiStack.Pop());
     }
 }
Exemple #3
0
        public void OpenUI(UILayer element)
        {
            if (!uiPool.ContainsKey(element))
            {
                PoolNewUI(element);
            }

            if (uiStack.Count > 0)
            {
                uiPool[uiStack.Peek()].gameObject.SetActive(false);
            }

            SetActiveUI(element);
        }
Exemple #4
0
 private void Update()
 {
     if (Input.GetKeyDown(KeyCode.Escape))
     {
         UILayer element = uiStack.Peek().uiOnBackButton;
         if (element != null)
         {
             OpenUI(element);
         }
         else
         {
             CloseUI();
         }
     }
 }
Exemple #5
0
        private void PoolNewUI(UILayer element)
        {
            Canvas c = Instantiate(element.uiPrefab, transform);

            uiPool.Add(element, c);
        }