public void TryCloseMenu(UIState targetState, YieldComplete onYieldComplete)
    {
        if (State == UIState.BlockInput || targetState == State)
        {
            return;
        }

        switch (State)
        {
        case UIState.SortMenu:
            SetState(UIState.BlockInput);
            _sortPanel.Hide(() =>
            {
                SetState(UIState.Menu);
                onYieldComplete();
            });
            return;

        case UIState.SearchMenu:
            SetState(UIState.BlockInput);
            _searchPanel.Hide(() =>
            {
                SetState(UIState.Menu);
                onYieldComplete();
            });
            return;
        }

        onYieldComplete();
    }
Beispiel #2
0
    IEnumerator AnimateTransitionYield(int toPageId, bool toRight, YieldComplete onYieldComplete)
    {
        float canvasSizeXFrom = 0;
        float canvasSizeXTo   = UIManager.GetCanvasSize().x;

        if (toRight)
        {
            canvasSizeXTo = -canvasSizeXTo;
        }

        float lt = 0;

        while (lt < 1)
        {
            lt += Time.deltaTime * UIManager.ShowHideTimeMulti * 2;

            _content.anchoredPosition = new Vector2(Mathf.SmoothStep(canvasSizeXFrom, canvasSizeXTo, lt), _content.anchoredPosition.y);
            yield return(new WaitForEndOfFrame());
        }

        FillPage(toPageId);

        lt = 0;
        while (lt < 1)
        {
            lt += Time.deltaTime * UIManager.ShowHideTimeMulti * 2;

            _content.anchoredPosition = new Vector2(Mathf.SmoothStep(-canvasSizeXTo, canvasSizeXFrom, lt), _content.anchoredPosition.y);
            yield return(new WaitForEndOfFrame());
        }

        onYieldComplete();
    }
    IEnumerator SwitchPanelYield(bool show, YieldComplete onYieldComplete)
    {
        if (show)
        {
            ShowButtons();
        }
        else
        {
            HideButtons();
        }

        float lt = 0;

        while (lt < 1)
        {
            lt += Time.deltaTime * UIManager.ShowHideTimeMulti;

            yield return(new WaitForEndOfFrame());
        }

        if (!show)
        {
            //IsMinimized = false;
            _basePanel.gameObject.SetActive(false);
            gameObject.SetActive(false);
        }

        onYieldComplete();
    }
Beispiel #4
0
    public virtual IEnumerator SwitchPanelYield(bool show, YieldComplete onYieldComplete)
    {
        float lt = 0;

        while (lt < 1)
        {
            lt += Time.deltaTime * UIManager.ShowHideTimeMulti;

            if (show)
            {
                _rectTransform.localScale = Vector3.Lerp(UIManager.HideSize, Vector3.one, lt);
                _canvasGroup.alpha        = Mathf.SmoothStep(0, 1, lt);
            }
            else
            {
                _rectTransform.localScale = Vector3.Lerp(Vector3.one, UIManager.HideSize, lt);
                _canvasGroup.alpha        = Mathf.SmoothStep(1, 0, lt);
            }

            yield return(new WaitForEndOfFrame());
        }

        if (!show)
        {
            gameObject.SetActive(false);
        }

        IsActive = show;
        onYieldComplete();
    }
Beispiel #5
0
 public virtual void Hide(YieldComplete onYieldComplete)
 {
     if (gameObject.activeSelf)
     {
         StartCoroutine(SwitchPanelYield(false, onYieldComplete));
     }
 }
Beispiel #6
0
 public override void Hide(YieldComplete onYieldComplete)
 {
     base.Hide(delegate
     {
         _parentPanel.SetActive(false);
         onYieldComplete();
     });
 }
Beispiel #7
0
    public void Show(bool useLastScrollPos, YieldComplete onYieldComplete)
    {
        if (useLastScrollPos)
        {
            _scrollRect.verticalNormalizedPosition = _lastScrollPos;
        }
        else
        {
            _scrollRect.verticalNormalizedPosition = 1;
        }

        gameObject.SetActive(true);
        StartCoroutine(SwitchPanelYield(true, useLastScrollPos, onYieldComplete));
    }
Beispiel #8
0
    IEnumerator SwitchPanelYield(bool show, bool useLastScrollPos, YieldComplete onYieldComplete)
    {
        float lt = 0;

        while (lt < 1)
        {
            lt += Time.deltaTime * UIManager.ShowHideTimeMulti;

            if (show)
            {
                _content.localScale = new Vector3(Mathf.SmoothStep(UIManager.HideSize.x, 1, lt),
                                                  Mathf.SmoothStep(UIManager.HideSize.y, 1, lt));
                _canvasGroup.alpha = Mathf.SmoothStep(0, 1, lt);
            }
            else
            {
                _content.localScale = new Vector3(Mathf.SmoothStep(1, UIManager.HideSize.x, lt), Mathf.SmoothStep(1, UIManager.HideSize.y, lt));
                _canvasGroup.alpha  = Mathf.SmoothStep(1, 0, lt);
            }

            if (useLastScrollPos)
            {
                _scrollRect.verticalNormalizedPosition = _lastScrollPos;
            }

            yield return(new WaitForEndOfFrame());
        }

        if (!show)
        {
            gameObject.SetActive(false);
        }
        else if (useLastScrollPos)
        {
            _scrollRect.verticalNormalizedPosition = _lastScrollPos;
        }

        onYieldComplete();
    }
Beispiel #9
0
 public YieldResult(YieldComplete yieldComplete)
 {
     yieldCompleteDelegate = yieldComplete;
 }
Beispiel #10
0
 public override void Show(YieldComplete onYieldComplete)
 {
     _parentPanel.SetActive(true);
     base.Show(onYieldComplete);
 }
 public void Hide(YieldComplete onYieldComplete)
 {
     StartCoroutine(SwitchPanelYield(false, onYieldComplete));
 }
 public void Show(YieldComplete onYieldComplete)
 {
     gameObject.SetActive(true);
     _basePanel.gameObject.SetActive(true);
     StartCoroutine(SwitchPanelYield(true, onYieldComplete));
 }
Beispiel #13
0
 public void Hide(YieldComplete onYieldComplete)
 {
     _lastScrollPos = _scrollRect.verticalNormalizedPosition;
     StartCoroutine(SwitchPanelYield(false, false, onYieldComplete));
 }