Ejemplo n.º 1
0
    //based on the anchors : left | center | right
    //0=left anchor, 0.5=when anchored center, 1=right. Returns where it should be when transitioning from left
    private Vector2 GetPositionByAnchorForLeftorRight(CallablePanel panel, RectTransform panelRectTransform, TransitionSide leftOrRight)
    {
        Vector2 positionToGoTo;

        if (panelRectTransform.anchorMax.x == 0)
        {
            positionToGoTo = new Vector2(-panelRectTransform.sizeDelta.x, panel.originalPos.y);
        }
        else if (panelRectTransform.anchorMax.x == 0.5)
        {
            positionToGoTo = new Vector2((-panelRectTransform.sizeDelta.x - canvasWidth) / 2f, panel.originalPos.y);
        }
        else
        {
            //else if    ... == 1f :
            positionToGoTo = new Vector2(-panelRectTransform.sizeDelta.x - canvasWidth / 2f - panelRectTransform.sizeDelta.x / 2f, panel.originalPos.y);
        }

        switch (leftOrRight)
        {
        case TransitionSide.left:
            return(positionToGoTo);

        case TransitionSide.right:
            return(new Vector2(positionToGoTo.x * -1, positionToGoTo.y));  //just to turn it other way round

        default:
            return(positionToGoTo);
        }
    }
Ejemplo n.º 2
0
    //0=bottom anchor, 0.5=when anchored center, 1=top. Returns where it should be when transitioning from top

    private Vector2 GetPositionByAnchorForToporBottom(CallablePanel panel, RectTransform panelRectTransform, TransitionSide topOrBottom)
    {
        Vector2 positionToGoTo;


        if (panelRectTransform.anchorMax.y == 0)
        {
            positionToGoTo = new Vector2(panel.originalPos.x, canvasHeight + (panelRectTransform.sizeDelta.y / 2));
        }
        else if (panelRectTransform.anchorMax.y == 0.5)
        {
            positionToGoTo = new Vector2(panel.originalPos.x, (canvasHeight / 2) + panelRectTransform.sizeDelta.y / 2);
        }
        else
        {
            //else if    ... == 1f :
            positionToGoTo = new Vector2(panel.originalPos.x, panelRectTransform.sizeDelta.y);
        }

        switch (topOrBottom)
        {
        case TransitionSide.top:
            return(positionToGoTo);

        case TransitionSide.bottom:
            return(new Vector2(positionToGoTo.x, positionToGoTo.y * -1));  //just to turn it other way round

        default:
            return(positionToGoTo);
        }
    }
Ejemplo n.º 3
0
    public static void DisappearTransitionEffectINIT(CallablePanel panel)
    {
        switch (panel.disappearTransition)
        {
        case DisappearTransition.noAnimation:
            panel.panel.SetActive(false);
            break;

        case DisappearTransition.fadeOut:
            panel.canvasGroup.alpha = 1f;
            panelManager.StartCoroutine(panelManager.FadeOut(panel, 1f));
            break;

        case DisappearTransition.flyAwayLeft:
            panelManager.StartCoroutine(panelManager.FlyAwayLeft(panel, 1f));
            break;

        case DisappearTransition.flyAwayTop:
            panelManager.StartCoroutine(panelManager.FlyAwayTop(panel, 1f));
            break;

        case DisappearTransition.flyAwayRight:
            panelManager.StartCoroutine(panelManager.FlyAwayRight(panel, 1f));
            break;

        case DisappearTransition.flyAwayBottom:
            panelManager.StartCoroutine(panelManager.FlyAwayBottom(panel, 1f));
            break;

        default:
            break;
        }
    }
Ejemplo n.º 4
0
 /// <summary>
 /// checks whether or not are show/display buttons the same for passed panel
 /// </summary>
 private static bool AreShowHideButtonsTheSame(CallablePanel panel)
 {
     if (panel.showPanelButton.GetInstanceID() == panel.hidePanelButton.GetInstanceID())
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 5
0
    //methods for effects of appearing/disappearing:
    public static void AppearTransitionEffectINIT(CallablePanel panel)
    {
        panel.panel.SetActive(true);
        if (panel.renderAboveEverything)
        {
            panel.panel.transform.SetAsLastSibling();
        }
        switch (panel.appearTransition)
        {
        case AppearTransition.noAnimation:
            panel.panel.SetActive(true);
            break;

        case AppearTransition.fadeIn:
            panel.canvasGroup.alpha = 0f;
            panelManager.StartCoroutine(panelManager.FadeIn(panel, 1f));
            break;

        case AppearTransition.flyInFromLeft:
            panelManager.StartCoroutine(panelManager.FlyInFromLeft(panel, 1f));
            break;

        case AppearTransition.flyInFromTop:
            panelManager.StartCoroutine(panelManager.FlyInFromTop(panel, 1f));
            break;

        case AppearTransition.flyInFromRight:
            panelManager.StartCoroutine(panelManager.FlyInFromRight(panel, 1f));
            break;

        case AppearTransition.flyInFromBottom:
            panelManager.StartCoroutine(panelManager.FlyInFromBottom(panel, 1f));
            break;

        default:
            break;
        }
        if (panel.shouldHideAfterTime)
        {
            panelManager.StartCoroutine(panelManager.HideAfterTimeT(panel, panel.hideAfterTime));
        }

        //trigger panel displayed event
        if (panelManager.NewPanelDisplayedManager != null)
        {
            PanelDisplayedArgs panelDisplayedArgs = new PanelDisplayedArgs()
            {
                PanelThatGotDisplayed = panel
            };
            panelManager.NewPanelDisplayedManager(panelDisplayedArgs);
        }
    }
Ejemplo n.º 6
0
 /// <summary>
 /// pass panel and its button (show or hide) that you want to deactivate in antagonist manner.
 /// Meaning, if you pass show button, then it will deactivate show button, but activate hide button.
 /// If you pass hide button, then it will deactivate hide button, but  activate show button.
 /// </summary>
 private static void AntagonistButtonDeactivation(CallablePanel panel, GameObject button)
 {
     if (panel.showPanelButton.gameObject.GetInstanceID() == button.GetInstanceID())
     {
         button.SetActive(false);
         panel.hidePanelButton.gameObject.SetActive(true);
     }
     else if (panel.hidePanelButton.gameObject.GetInstanceID() == button.GetInstanceID())
     {
         button.SetActive(false);
         panel.showPanelButton.gameObject.SetActive(true);
     }
 }
Ejemplo n.º 7
0
    ///
    ///****** panels' transition methods (appear / disappear effects and animations ) ******
    ///

    #region transition effect methods

    private IEnumerator FadeIn(CallablePanel panel, float fadeTime)
    {
        isTransitionInProcess = true;
        panel.rectTransform.anchoredPosition = panel.originalPos;
        float elapsedTime = 0;

        while (elapsedTime < fadeTime)
        {
            float A = panel.canvasGroup.alpha;
            float B = 1f;

            panel.canvasGroup.alpha = Mathf.Lerp(A, B, elapsedTime / fadeTime);
            elapsedTime            += Time.deltaTime;
            yield return(new WaitForEndOfFrame());
        }
        isTransitionInProcess = false;
    }
Ejemplo n.º 8
0
    private IEnumerator FlyInFromBottom(CallablePanel panel, float flyInTime)
    {
        isTransitionInProcess   = true;
        panel.canvasGroup.alpha = 1f;

        Vector2 A = GetPositionByAnchorForToporBottom(panel, panel.rectTransform, TransitionSide.bottom);
        Vector2 B = panel.originalPos;

        float elapsedTime = 0;

        while (elapsedTime < flyInTime)
        {
            panel.rectTransform.anchoredPosition = Vector2.Lerp(A, B, elapsedTime / flyInTime);
            elapsedTime += Time.deltaTime;
            yield return(new WaitForEndOfFrame());
        }
        isTransitionInProcess = false;
    }
Ejemplo n.º 9
0
    private IEnumerator FadeOut(CallablePanel panel, float fadeTime)
    {
        isTransitionInProcess = true;
        GameObject panelGO     = panel.panel;
        float      elapsedTime = 0;

        while (elapsedTime < fadeTime)
        {
            float A = panel.canvasGroup.alpha;
            float B = 0f;

            panel.canvasGroup.alpha = Mathf.Lerp(A, B, elapsedTime / fadeTime);
            elapsedTime            += Time.deltaTime;
            yield return(new WaitForEndOfFrame());
        }
        isTransitionInProcess = false;
        panelGO.SetActive(false);
    }
Ejemplo n.º 10
0
    private IEnumerator FlyAwayRight(CallablePanel panel, float flyAwayTime)
    {
        isTransitionInProcess = true;
        GameObject panelGO = panel.panel;

        Vector2 A = panel.originalPos;
        Vector2 B = GetPositionByAnchorForLeftorRight(panel, panel.rectTransform, TransitionSide.right);

        float elapsedTime = 0;

        while (elapsedTime < flyAwayTime)
        {
            panel.rectTransform.anchoredPosition = Vector2.Lerp(A, B, elapsedTime / flyAwayTime);
            elapsedTime += Time.deltaTime;
            yield return(new WaitForEndOfFrame());
        }
        isTransitionInProcess   = false;
        panel.canvasGroup.alpha = 0f;
        panelGO.SetActive(false);
    }
Ejemplo n.º 11
0
    public IEnumerator HideAfterTimeT(CallablePanel panel, float seconds)
    {
        yield return(new WaitForSeconds(seconds));

        DisappearTransitionEffectINIT(panel);
    }