Exemple #1
0
    /// <summary>
    /// 打开窗体
    /// </summary>
    /// <param name="formPath">窗体路径</param>
    /// <param name="useFormPool">是否从窗体对象次取</param>
    /// <param name="useCameraRenderMode">是否使用摄像机渲染</param>
    /// <returns></returns>
    public UIFormScript OpenForm(string formPath, bool useFormPool, bool useCameraRenderMode = true)
    {
        UIFormScript uiFormScript = GetUnCloseForm(formPath);

        if (uiFormScript != null && uiFormScript.isSingleton)
        {
            RemoveFromExistFormSequenceList(uiFormScript.GetSequence());
            AddToExistFormSequenceList(m_formSequence);
            int formOpenOrder = GetFormOpenOrder(m_formSequence);
            uiFormScript.Open(m_formSequence, true, formOpenOrder);
            m_formSequence++;
            m_needSortForms = true;
            return(uiFormScript);
        }
        GameObject gameObject = CreateForm(formPath, useFormPool);

        if (gameObject == null)
        {
            return(null);
        }

        if (!gameObject.activeSelf)
        {
            gameObject.SetActive(true);
        }
        string formName = GetFormName(formPath);

        gameObject.name = formName;
        if (gameObject.transform.parent != m_uiRoot.transform)
        {
            gameObject.transform.SetParent(m_uiRoot.transform);
        }
        uiFormScript = gameObject.GetComponent <UIFormScript>();
        if (uiFormScript != null)
        {
            AddToExistFormSequenceList(m_formSequence);
            int formOpenOrder2 = GetFormOpenOrder(m_formSequence);
            uiFormScript.Open(formPath, (!useCameraRenderMode) ? null : m_formCamera, m_formSequence, false, formOpenOrder2);
            if (uiFormScript.group > 0)
            {
                CloseGroupForm(uiFormScript.group);
            }
            m_forms.Add(uiFormScript);
        }
        m_formSequence++;
        m_needSortForms = true;
        return(uiFormScript);
    }