IEnumerator DisablePanelDeleyed(PanelInstance page)
    {
        //bool closedStateReached = false;
        bool wantToClose = true;

        page.isClosed = false;
        Animator anim = page.GetComponent <Animator> ();

        if (anim && anim.enabled)
        {
            while (!page.isClosed && wantToClose)
            {
                yield return(new WaitForEndOfFrame());
            }

            if (wantToClose)
            {
                page.gameObject.SetActive(false);
            }
        }
        else
        {
            page.gameObject.SetActive(false);
        }
    }
Пример #2
0
    //通过名字打开面板
    public void OpenPanelByName(string name)
    {
        PanelInstance page = null;

        for (int i = 0; i < Pages.Length; i++)
        {
            if (Pages[i].name == name)
            {
                page = Pages[i];
                break;
            }
        }
        if (page == null)
        {
            return;
        }
        page.PanelBefore = currentPanel;
        currentPanel     = page;
        CloseAllPanels();
        Animator anim = page.GetComponent <Animator>();

        if (anim && anim.isActiveAndEnabled)
        {
            anim.SetBool("Open", true);
        }
        page.gameObject.SetActive(true);
    }
Пример #3
0
    public void ClosePanel(PanelInstance page)
    {
        if (page == null)
            return;

        currentPanel = null;
        Animator anim = page.GetComponent<Animator> ();
        if (anim && anim.isActiveAndEnabled) {
            anim.SetBool ("Open", false);
        }
        StartCoroutine (DisablePanelDeleyed (page));
    }
Пример #4
0
    public void OpenPanel(PanelInstance page)
    {
        if (page == null)
            return;

        page.PanelBefore = currentPanel;
        currentPanel = page;

        CloseAllPanels ();
        Animator anim = page.GetComponent<Animator> ();
        if (anim && anim.isActiveAndEnabled) {
            anim.SetBool ("Open", true);
        }
        page.gameObject.SetActive (true);
    }
Пример #5
0
    //打开面板
    public void OpenPanel(PanelInstance page)
    {
        if (page == null)
        {
            return;
        }
        page.PanelBefore = currentPanel;
        currentPanel     = page;
        CloseAllPanels();
        Animator anim = page.GetComponent <Animator>();

        if (anim && anim.isActiveAndEnabled)
        {
            anim.SetBool("Open", true);
        }
        page.gameObject.SetActive(true);
        Debug.Log("面板" + page.gameObject.name + "已经打开");
    }
Пример #6
0
    IEnumerator DisablePanelDeleyed(PanelInstance page)
    {
        bool closedStateReached = false;
        bool wantToClose = true;
        Animator anim = page.GetComponent<Animator> ();
        if (anim && anim.enabled) {

            while (!closedStateReached && wantToClose) {
                if (!anim.IsInTransition (0)) {
                    closedStateReached = anim.GetCurrentAnimatorStateInfo (0).IsName ("Closing");
                }
                yield return new WaitForEndOfFrame();
            }

            if (wantToClose) {
                anim.gameObject.SetActive (false);
            }

        } else {
            page.gameObject.SetActive (false);
        }
    }