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; } }
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)); }
//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>(); } } } }
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(); }