Esempio n. 1
0
 /// <summary>
 /// 回收窗体
 /// </summary>
 /// <param name="formScript">窗体对象</param>
 private void RecycleForm(UIFormScript formScript)
 {
     if (formScript == null)
     {
         return;
     }
     if (formScript.useFormPool)
     {
         formScript.Hide(enFormHideFlag.HideByCustom, true);
         m_pooledForms.Add(formScript);
     }
     else
     {
         try
         {
             if (formScript.canvasScaler != null)
             {
                 formScript.canvasScaler.enabled = false;
             }
             UnityEngine.Object.Destroy(formScript.gameObject);
         }
         catch (Exception ex)
         {
             UnityEngine.Debug.AssertFormat(false, "Error destroy {0} formScript gameObject: message: {1}, callstack: {2}", new object[]
             {
                 formScript.name,
                 ex.Message,
                 ex.StackTrace
             });
         }
     }
 }
Esempio n. 2
0
 public override void Initialize(UIFormScript formScript)
 {
     if (m_isInitialized)
     {
         return;
     }
     base.Initialize(formScript);
 }
Esempio n. 3
0
 public override void Initialize(UIFormScript formScript)
 {
     if (m_isInitialized)
     {
         return;
     }
     m_canvas = GetComponent <Canvas>();
     base.Initialize(formScript);
 }
Esempio n. 4
0
 public override void Initialize(UIFormScript formScript)
 {
     if (m_isInitialized)
     {
         return;
     }
     base.Initialize(formScript);
     m_text = gameObject.GetComponent <Text>();
     SetDisplay();
 }
Esempio n. 5
0
 /// <summary>
 ///根据窗体对象关闭窗体
 /// </summary>
 /// <param name="formScript">窗体对象</param>
 public void CloseForm(UIFormScript formScript)
 {
     for (int i = 0; i < m_forms.Count; i++)
     {
         if (m_forms[i] == formScript)
         {
             m_forms[i].Close();
         }
     }
 }
Esempio n. 6
0
 public override void Initialize(UIFormScript formScript)
 {
     if (m_isInitialized)
     {
         return;
     }
     base.Initialize(formScript);
     m_animator               = gameObject.GetComponent <Animator>();
     m_isEnableBeHide         = enabled;
     m_isEnableAnimatorBeHide = m_animator.enabled;
 }
Esempio n. 7
0
 public void Clear()
 {
     srcFormScript                = null;
     srcWidget                    = null;
     srcWidgetScript              = null;
     srcWidgetBelongedListScript  = null;
     SrcWidgetIndexInBelongedList = -1;
     pointerEventData             = null;
     eventID = enUIEventID.None;
     inUse   = false;
 }
 public override void Initialize(UIFormScript formScript)
 {
     if (m_isInitialized)
     {
         return;
     }
     base.Initialize(formScript);
     m_toggle = GetComponentInChildren <Toggle>(base.gameObject);
     if (m_toggle != null)
     {
         m_toggle.interactable = false;
     }
 }
Esempio n. 9
0
    public static UIFormScript GetFormScript(Transform transform)
    {
        if (transform == null)
        {
            return(null);
        }
        UIFormScript component = transform.gameObject.GetComponent <UIFormScript>();

        if (component != null)
        {
            return(component);
        }
        return(UIUtility.GetFormScript(transform.parent));
    }
Esempio n. 10
0
    /// <summary>
    /// 排序比较函数
    /// </summary>
    /// <param name="obj"></param>
    /// <returns></returns>
    public int CompareTo(object obj)
    {
        UIFormScript uiFormScript = obj as UIFormScript;

        if (m_sortingOrder > uiFormScript.m_sortingOrder)
        {
            return(1);
        }
        else if (m_sortingOrder == uiFormScript.m_sortingOrder)
        {
            return(0);
        }
        return(-1);
    }
Esempio n. 11
0
    public virtual void Initialize(UIFormScript formScript)
    {
        if (m_isInitialized)
        {
            return;
        }

        belongedFormScript = formScript;
        if (belongedFormScript != null)
        {
            belongedFormScript.AddUIComponent(this);
            SetSortingOrder(belongedFormScript.GetSortingOrder());
        }
        m_isInitialized = true;
    }
Esempio n. 12
0
 public override void Initialize(UIFormScript formScript)
 {
     if (m_isInitialized)
     {
         return;
     }
     base.Initialize(formScript);
     m_animation = gameObject.GetComponent <Animation>();
     if (m_animation != null && m_animation.playAutomatically && m_animation.clip != null)
     {
         m_currentAnimationState = m_animation[m_animation.clip.name];
         m_currentAnimationTime  = 0f;
         DispatchAnimationEvent(enAnimationEventType.AnimationStart);
     }
 }
Esempio n. 13
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);
    }
Esempio n. 14
0
 public static void SetImageSprite(Image image, string prefabPath, UIFormScript formScript, bool loadSync = true, bool needCached = false, bool unloadBelongedAssetBundleAfterLoaded = false, bool isShowSpecMatrial = false)
 {
     if (image == null)
     {
         return;
     }
     if (loadSync)
     {
         UIUtility.SetImageSprite(image, UIUtility.GetSpritePrefeb(prefabPath, needCached, unloadBelongedAssetBundleAfterLoaded), isShowSpecMatrial);
     }
     else
     {
         image.color = new Color(image.color.r, image.color.g, image.color.b, 0f);
         formScript.AddAsyncLoadedImage(image, prefabPath, needCached, unloadBelongedAssetBundleAfterLoaded, isShowSpecMatrial);
     }
 }
Esempio n. 15
0
    public static GameObject FindChild(this UIFormScript form, string path)
    {
        if (form == null)
        {
            return(null);
        }

        Transform mTran = form.transform.Find(path);

        if (mTran == null)
        {
            Debug.LogError("没有找到该对象:" + path);
            return(null);
        }

        return(mTran.gameObject);
    }
Esempio n. 16
0
    public override void  Initialize(UIFormScript formScript)
    {
        if (m_isInitialized)
        {
            return;
        }
        base.Initialize(formScript);
        if (m_runImmediately)
        {
            StartTimer();
        }

        m_timerText = base.GetComponentInChildren <Text>(gameObject);
        if (timerDisplayType == enTimerDisplayType.None && m_timerText != null)
        {
            m_timerText.gameObject.SetActive(false);
        }
        RefreshTimeDisplay();
    }
Esempio n. 17
0
 public override void Initialize(UIFormScript formScript)
 {
     if (m_isInitialized)
     {
         return;
     }
     base.Initialize(formScript);
     m_image = gameObject.GetComponent <Image>();
     if (m_image != null)
     {
         m_defaultSprite = m_image.sprite;
         m_defaultColor  = m_image.color;
         //if (m_image is Image2)
         //{
         //    Image2 image = m_image as Image2;
         //    m_defaultLayout = image.alphaTexLayout;
         //}
     }
     if (m_autoAddUIEventScript)
     {
         UIEventScript uiEventScript = base.gameObject.GetComponent <UIEventScript>();
         if (uiEventScript == null)
         {
             uiEventScript = base.gameObject.AddComponent <UIEventScript>();
             uiEventScript.Initialize(formScript);
         }
     }
     if (!m_useSetActiveForDisplay)
     {
         m_canvasGroup = base.gameObject.GetComponent <CanvasGroup>();
         if (m_canvasGroup == null)
         {
             m_canvasGroup = base.gameObject.AddComponent <CanvasGroup>();
         }
     }
     m_defaultSize = GetDefaultSize();
     InitRectTransform();
     if (m_textObj != null)
     {
         m_defaultTextColor = m_textObj.color;
     }
 }
Esempio n. 18
0
 public override void Initialize(UIFormScript formScript)
 {
     if (m_isInitialized)
     {
         return;
     }
     base.Initialize(formScript);
     for (int i = 0; i < gameObject.transform.childCount; i++)
     {
         GameObject gameObject1 = gameObject.transform.GetChild(i).gameObject;
         if (m_elementTemplate == null)
         {
             m_elementTemplate      = gameObject1;
             m_elementName          = gameObject1.name;
             m_elementTemplate.name = m_elementName + "_Template";
             if (m_elementTemplate.activeSelf)
             {
                 m_elementTemplate.SetActive(false);
             }
         }
         gameObject1.SetActive(false);
     }
     if (prepareElementAmount > 0)
     {
         for (int j = 0; j < prepareElementAmount; j++)
         {
             GameObject gameObject2 = GameObject.Instantiate(m_elementTemplate);
             gameObject2.gameObject.name = m_elementName;
             base.InitializeComponent(gameObject2.gameObject);
             if (gameObject2.activeSelf)
             {
                 gameObject2.SetActive(false);
             }
             if (gameObject2.transform.parent != gameObject.transform)
             {
                 gameObject2.transform.SetParent(gameObject.transform, true);
                 gameObject2.transform.localScale = Vector3.one;
             }
             m_unusedElements.Add(gameObject2);
         }
     }
 }
Esempio n. 19
0
 public override void Initialize(UIFormScript formScript)
 {
     if (m_isInitialized)
     {
         return;
     }
     if (isMultiSelected)
     {
         m_multiSelected = new bool[elementAmount];
         for (int i = 0; i < elementAmount; i++)
         {
             m_multiSelected[i] = false;
         }
     }
     else
     {
         m_selected = -1;
     }
     base.Initialize(formScript);
 }
Esempio n. 20
0
    /// <summary>
    /// 获取顶部窗体
    /// </summary>
    /// <returns></returns>
    public UIFormScript GetTopForm()
    {
        UIFormScript uiFormScript = null;

        for (int i = 0; i < m_forms.Count; i++)
        {
            if (!(m_forms[i] == null))
            {
                if (uiFormScript == null)
                {
                    uiFormScript = m_forms[i];
                }
                else if (m_forms[i].GetSortingOrder() > uiFormScript.GetSortingOrder())
                {
                    uiFormScript = m_forms[i];
                }
            }
        }
        return(uiFormScript);
    }
Esempio n. 21
0
 public override void Initialize(UIFormScript formScript)
 {
     if (m_isInitialized)
     {
         return;
     }
     LoadRes();
     InitializeRenderers();
     base.Initialize(formScript);
     if (isFixScaleToForm)
     {
         ResetScale();
     }
     if (isFixScaleToParticleSystem)
     {
         ResetParticleScale();
     }
     if (belongedFormScript.IsHided())
     {
         Hide();
     }
 }
Esempio n. 22
0
    /// <summary>
    /// 创建窗体
    /// </summary>
    /// <param name="formPrefabPath">窗体路径</param>
    /// <param name="useFormPool">是否从窗体对象池去</param>
    /// <returns>对象</returns>
    private GameObject CreateForm(string formPrefabPath, bool useFormPool)
    {
        GameObject gameObject = null;

        if (useFormPool)
        {
            for (int i = 0; i < m_pooledForms.Count; ++i)
            {
                if (string.Equals(formPrefabPath, m_pooledForms[i].formPath, StringComparison.OrdinalIgnoreCase))
                {
                    m_pooledForms[i].Appear(enFormHideFlag.HideByCustom, true);
                    gameObject = m_pooledForms[i].gameObject;
                    m_pooledForms.RemoveAt(i);
                    break;
                }
            }
        }
        if (gameObject == null)
        {
            GameObject gameObject2 = (GameObject)Singleton <ResourceManager> .GetInstance().GetResource(formPrefabPath, typeof(GameObject), enResourceType.UIForm, false, false).content;

            if (gameObject2 == null)
            {
                return(null);
            }
            gameObject = (GameObject)UnityEngine.Object.Instantiate(gameObject2);
        }
        if (gameObject != null)
        {
            UIFormScript component = gameObject.GetComponent <UIFormScript>();
            if (component != null)
            {
                component.useFormPool = useFormPool;
            }
        }
        return(gameObject);
    }
Esempio n. 23
0
    public override void Initialize(UIFormScript formScript)
    {
        if (m_isInitialized)
        {
            return;
        }
        m_toggle = gameObject.GetComponent <Toggle>();
        m_toggle.onValueChanged.RemoveAllListeners();
        m_toggle.onValueChanged.AddListener(new UnityAction <bool>(OnToggleValueChanged));
        Transform transform = gameObject.transform.Find("Label");

        if (transform != null)
        {
            if (m_toggle.isOn)
            {
                transform.GetComponent <Text>().color = UIUtility.s_Color_White;
            }
            else
            {
                transform.GetComponent <Text>().color = UIUtility.s_Text_Color_ListElement_Normal;
            }
        }
        base.Initialize(formScript);
    }
Esempio n. 24
0
    public override void Initialize(UIFormScript formScript)
    {
        if (m_isInitialized)
        {
            return;
        }
        base.Initialize(formScript);
        m_selectedElementIndex     = -1;
        m_lastSelectedElementIndex = -1;
        scrollRect = GetComponentInChildren <ScrollRect>(gameObject);
        if (scrollRect != null)
        {
            scrollRect.enabled = false;
            RectTransform rectTransform = scrollRect.transform as RectTransform;
            scrollAreaSize = new Vector2(rectTransform.rect.width, rectTransform.rect.height);
            m_content      = scrollRect.content.gameObject;
        }
        m_scrollBar = base.GetComponentInChildren <Scrollbar>(gameObject);
        if (listType == enUIListType.Vertical || listType == enUIListType.VerticalGrid)
        {
            if (m_scrollBar != null)
            {
                m_scrollBar.direction = Scrollbar.Direction.BottomToTop;
            }
            // DebugHelper.Assert(scrollRect != null);
            if (scrollRect != null)
            {
                scrollRect.horizontal          = false;
                scrollRect.vertical            = true;
                scrollRect.horizontalScrollbar = null;
                scrollRect.verticalScrollbar   = m_scrollBar;
            }
        }
        else if (listType == enUIListType.Horizontal || listType == enUIListType.HorizontalGrid)
        {
            if (m_scrollBar != null)
            {
                m_scrollBar.direction = Scrollbar.Direction.LeftToRight;
            }
            //    DebugHelper.Assert(scrollRect != null);
            if (scrollRect != null)
            {
                scrollRect.horizontal          = true;
                scrollRect.vertical            = false;
                scrollRect.horizontalScrollbar = m_scrollBar;
                scrollRect.verticalScrollbar   = null;
            }
        }
        m_elementScripts       = new List <UIListElementScript>();
        m_unUsedElementScripts = new List <UIListElementScript>();
        if (useOptimized && m_elementsRect == null)
        {
            m_elementsRect = new List <stRect>();
        }
        UIListElementScript uiListElementScript = null;

        if (useExternalElement)
        {
            GameObject gameObject1 = null;
            if (externalElementPrefabPath != null)
            {
                gameObject1 = (GameObject)Singleton <ResourceManager> .GetInstance().GetResource(externalElementPrefabPath, typeof(GameObject), enResourceType.UIPrefab, false, false).content;

                if (gameObject1 != null)
                {
                    uiListElementScript = gameObject1.GetComponent <UIListElementScript>();
                }
            }
            if (uiListElementScript != null && gameObject1 != null)
            {
                uiListElementScript.Initialize(formScript);
                m_elementTemplate    = gameObject1;
                m_elementName        = gameObject1.name;
                m_elementDefaultSize = uiListElementScript.m_defaultSize;
            }
        }
        else
        {
            uiListElementScript = GetComponentInChildren <UIListElementScript>(gameObject);
            if (uiListElementScript != null)
            {
                uiListElementScript.Initialize(formScript);
                m_elementTemplate    = uiListElementScript.gameObject;
                m_elementName        = uiListElementScript.gameObject.name;
                m_elementDefaultSize = uiListElementScript.m_defaultSize;
                if (m_elementTemplate != null)
                {
                    m_elementTemplate.name = m_elementName + "_Template";
                }
            }
        }
        if (m_elementTemplate != null)
        {
            UIListElementScript component = m_elementTemplate.GetComponent <UIListElementScript>();
            if (component != null && component.m_useSetActiveForDisplay)
            {
                m_elementTemplate.SetActive(false);
            }
            else
            {
                if (!m_elementTemplate.activeSelf)
                {
                    m_elementTemplate.SetActive(true);
                }
                CanvasGroup canvasGroup = m_elementTemplate.GetComponent <CanvasGroup>();
                if (canvasGroup == null)
                {
                    canvasGroup = m_elementTemplate.AddComponent <CanvasGroup>();
                }
                canvasGroup.alpha          = 0f;
                canvasGroup.blocksRaycasts = false;
            }
        }
        if (m_content != null)
        {
            m_contentRectTransform                  = (m_content.transform as RectTransform);
            m_contentRectTransform.pivot            = new Vector2(0f, 1f);
            m_contentRectTransform.anchorMin        = new Vector2(0f, 1f);
            m_contentRectTransform.anchorMax        = new Vector2(0f, 1f);
            m_contentRectTransform.anchoredPosition = Vector2.zero;
            m_contentRectTransform.localRotation    = Quaternion.identity;
            m_contentRectTransform.localScale       = new Vector3(1f, 1f, 1f);
            m_lastContentPosition = m_contentRectTransform.anchoredPosition;
        }
        if (extraContent != null)
        {
            RectTransform rectTransform2 = extraContent.transform as RectTransform;
            rectTransform2.pivot            = new Vector2(0f, 1f);
            rectTransform2.anchorMin        = new Vector2(0f, 1f);
            rectTransform2.anchorMax        = new Vector2(0f, 1f);
            rectTransform2.anchoredPosition = Vector2.zero;
            rectTransform2.localRotation    = Quaternion.identity;
            rectTransform2.localScale       = Vector3.one;
            if (m_elementTemplate != null)
            {
                rectTransform2.sizeDelta = new Vector2((m_elementTemplate.transform as RectTransform).rect.width, rectTransform2.sizeDelta.y);
            }
            if (rectTransform2.parent != null && m_content != null)
            {
                rectTransform2.parent.SetParent(m_content.transform);
            }
            extraContent.SetActive(false);
        }
        m_isExtraContentEnabled = true;
        if (m_elementTemplate != null)
        {
            SetElementAmount(elementAmount);
        }
    }
Esempio n. 25
0
 public static void SetSprite(this Image image, string prefabPath, UIFormScript formScript, bool loadSync = true, bool needCached = false, bool unloadBelongedAssetBundleAfterLoaded = false, bool isShowSpecMatrial = false)
 {
     UIUtility.SetImageSprite(image, prefabPath, formScript, loadSync, needCached, unloadBelongedAssetBundleAfterLoaded, isShowSpecMatrial);
 }
Esempio n. 26
0
    private void OpenMessageBoxBase(string strContent, bool isHaveCancelBtn, enUIEventID confirmID, enUIEventID cancelID, stUIEventParams par, bool isContentLeftAlign = false, string confirmStr = "", string cancelStr = "", string titleStr = "", int autoCloseTime = 0, enUIEventID timeUpID = enUIEventID.None)
    {
        UIFormScript uiFormScript = Singleton <UIManager> .GetInstance().OpenForm("UGUI/Form/Common/Form_MessageBox.prefab", false, false);

        if (uiFormScript == null)
        {
            return;
        }
        GameObject gameObject = uiFormScript.gameObject;

        if (gameObject == null)
        {
            return;
        }
        if (confirmStr == string.Empty)
        {
            confirmStr = Singleton <TextManager> .GetInstance().GetText("Common_Confirm");
        }
        if (cancelStr == string.Empty)
        {
            cancelStr = Singleton <TextManager> .GetInstance().GetText("Common_Cancel");
        }
        if (titleStr == string.Empty)
        {
            titleStr = Singleton <TextManager> .GetInstance().GetText("Common_MsgBox_Title");
        }
        GameObject obj3 = gameObject.transform.Find("Panel/Panel/btnGroup/Button_Confirm").gameObject;

        obj3.GetComponentInChildren <Text>().text = confirmStr;
        GameObject obj4 = gameObject.transform.Find("Panel/Panel/btnGroup/Button_Cancel").gameObject;

        obj4.GetComponentInChildren <Text>().text = cancelStr;
        gameObject.transform.Find("Panel/Panel/title/Text").gameObject.GetComponentInChildren <Text>().text = titleStr;
        Text component = gameObject.transform.Find("Panel/Panel/Text").GetComponent <Text>();

        component.text = strContent;
        if (!isHaveCancelBtn)
        {
            obj4.SetActive(false);
        }
        else
        {
            obj4.SetActive(true);
        }
        UIEventScript script2 = obj3.GetComponent <UIEventScript>();
        UIEventScript script3 = obj4.GetComponent <UIEventScript>();

        script2.SetUIEvent(enUIEventType.Click, confirmID, par);
        script3.SetUIEvent(enUIEventType.Click, cancelID, par);
        if (isContentLeftAlign)
        {
            component.alignment = TextAnchor.MiddleLeft;
        }
        if (autoCloseTime != 0)
        {
            Transform transform = uiFormScript.transform.Find("closeTimer");
            if (transform != null)
            {
                UITimerScript script4 = transform.GetComponent <UITimerScript>();
                if (script4 != null)
                {
                    script4.SetTotalTime((float)autoCloseTime);
                    script4.StartTimer();
                    script4.eventIDs[1]        = timeUpID;
                    script4.eventParamsArry[1] = par;
                }
            }
        }
        CloseSendMsgAlert();
    }
Esempio n. 27
0
 protected virtual void OnDestroy()
 {
     belongedFormScript = null;
     belongedListScript = null;
     widgets            = null;
 }