Пример #1
0
    public IEnumerator  DoTransitionInAFterDelay(EFE_PanelTransition prevPanel, EFE_PanelTransition panel)
    {
        //print("fade -DoTransitionIN after delay");
        //get current panel and set its transition type to instant
        EFE_PanelTransition.TransitionType prevTransitionType_currentPanel = panel.transitionInType;
        panel.transitionInType = EFE_PanelTransition.TransitionType.None;

        //temporary set the cur panel speed to equal delay time
        if (prevPanel)
        {
            prevTransSpeed            = prevPanel.transitionSpeed;
            prevPanel.transitionSpeed = fadeDelay;
        }


        panel.PositionTransitionFadePanel();
        //print("fade - Setting Panel OFF ");
        currentPanel.active = false;
        //print("Started coroutine");
        yield return(new WaitForSeconds(fadeDelay));

        currentPanel.active = true;
        //print("End of coroutine");
        panel.DoTransitionIn();
        //print("fade - Done trans IN after delay of "+fadeDelay);
        //reset transition type and speed
        panel.transitionInType = prevTransitionType_currentPanel;
        if (prevPanel)
        {
            prevPanel.transitionSpeed = prevTransSpeed;
        }
    }
Пример #2
0
    public void CloseCurrentOverlayPanel()
    {
        print("today - current overlay is " + currentOverlay.name);
        if (currentOverlay)
        {
            //currentOverlay.transform.position = overlayLastPosition;
        }

        panelTransitionScript = currentOverlay.GetComponent <EFE_PanelTransition>();
        float hidePanelWaitTime = 0f;

        if (panelTransitionScript)
        {
            panelTransitionScript.DoTransitionOut();
            hidePanelWaitTime = panelTransitionScript.transitionSpeed;
            StartCoroutine(HideAllPanelsAfterDelay(hidePanelWaitTime));
        }
        else
        {
            currentOverlay.transform.position = overlayLastPosition;
        }

        //fade out the dark fade screen
        BroadcastMessage("BackgroundFadeOut", SendMessageOptions.DontRequireReceiver);


        print("EFE - Close Overlay");
        StartCoroutine(HideAllPanelsAfterDelay(hidePanelWaitTime));
    }
Пример #3
0
    //tell each panel about the transition fade panel
    void AssignFadeTransitionPanel()
    {
        for (int x = 0; x < panelList.Length; x++)
        {
            if (panelList[x] != null)
            {
                EFE_PanelTransition panelTransitionComponent = panelList[x].GetComponent <EFE_PanelTransition>();

                if (panelTransitionComponent != null)
                {
                    panelTransitionComponent.transitionFadePanel = transitionFadePanel;
                    panelTransitionComponent.efe_base            = efe_base;
                    panelTransitionComponent.efe_base_comp       = efe_base.GetComponent <EFE_Base>();
                }
            }
        }
    }
Пример #4
0
    public void OpenPanel(GameObject panel)
    {
        //if panel already openingdont allow it again
        if (panelIsTransitioning)
        {
            return;
        }

        panelIsTransitioning = true;
        print("EFE - Open Panel");

        //prevent opening panels during fades
        if (doingTransitionFade)
        {
            return;
        }

        string panelName = panel.name;

        //close current panel if applicabale
        if (currentPanel)
        {
            //currentPanel.transform.position = panelLastPosition;
            previousPanel = currentPanel;
        }


        currentPanel = FindPanel(panelName);
        currentPanel.SetActive(true);
        panelLastPosition = currentPanel.transform.position;

        ////position panel on the screen!
        currentPanel.transform.position = currentPanel.transform.parent.position;

        /////////////////////////////////////////////
        panelTransitionScript = currentPanel.GetComponent <EFE_PanelTransition>();
        if (previousPanel)
        {
            prevPanelTransitionScript = previousPanel.GetComponent <EFE_PanelTransition>();
        }



        float hidePanelWaitTime = 0f;

        //Prevent any transitions on first panel (if required)
        if (panelName == firstPanel.name && isFirstPanel == true)
        {
            if (useFirstPanelTransition == false)
            {
                panelTransitionScript = null;
                isFirstPanel          = false;
            }

            //isFirstPanel=false;
        }

        //Do transition
        if (panelTransitionScript)
        {
            bool isTransitionFade = false;


            //if either the prev or current have fades then this IS a fade
            //if(doingTransitionFade)
            //if(panelTransitionScript.transitionInType==EFE_PanelTransition.TransitionType.TransitionFade)

            //if(panelTransitionScript.transitionInType==EFE_PanelTransition.TransitionType.TransitionFade||
            //	prevPanelTransitionScript.transitionInType==EFE_PanelTransition.TransitionType.TransitionFade||
            //	panelTransitionScript.transitionOutType==EFE_PanelTransition.TransitionTypeOut.TransitionFade||
            //	prevPanelTransitionScript.transitionOutType==EFE_PanelTransition.TransitionTypeOut.TransitionFade)

            if (panelTransitionScript.transitionInType == EFE_PanelTransition.TransitionType.TransitionFade)

            {
                isTransitionFade = true;
            }

            if (prevPanelTransitionScript)
            {
                if (prevPanelTransitionScript.transitionOutType == EFE_PanelTransition.TransitionTypeOut.TransitionFade)
                {
                    isTransitionFade = true;
                }
            }

            //if(isTransitionFade==true)
            //{
            //	panelTransitionScript.transitionInType=EFE_PanelTransition.TransitionType.None;
            //}
            if (isTransitionFade)
            {
                IEnumerator transitionIn = DoTransitionInAFterDelay(prevPanelTransitionScript, panelTransitionScript);
                StartCoroutine(transitionIn);
            }
            else
            {
                panelTransitionScript.DoTransitionIn();
            }

            if (prevPanelTransitionScript)
            {
                //check if this transition is a fade transition and do special..
                if (isTransitionFade)
                //if(prevPanelTransitionScript.transitionInType==EFE_PanelTransition.TransitionType.TransitionFade)
                {
                    //prevPanelTransitionScript.transitionInType=EFE_PanelTransition.TransitionType.None;
                    //prevPanelTransitionScript.tr
                    IEnumerator transitionOut = DoTransitionOutAFterDelay(prevPanelTransitionScript, panelTransitionScript);
                    StartCoroutine(transitionOut);
                }
                else
                {
                    prevPanelTransitionScript.DoTransitionOut();
                }
            }

            hidePanelWaitTime = panelTransitionScript.transitionSpeed;
            //
            currentPanel.transform.SetAsLastSibling();
            StartCoroutine(HideAllPanelsAfterDelay(hidePanelWaitTime));
        }
        else
        {
            hidePanelWaitTime = 0f;
            HideAllPanels();            //do it now
            if (previousPanel)
            {
                previousPanel.transform.position = panelLastPosition;
            }
            panelIsTransitioning = false;
            return;
        }

        //////////////////////////////////////////////


        SendPanelOpenedMessages();
    }