Пример #1
0
        /// <summary>
        ///   <para>Mark the given RectTransform as needing it's layout to be recalculated during the next layout pass.</para>
        /// </summary>
        /// <param name="rect">Rect to rebuild.</param>
        public static void MarkLayoutForRebuild(RectTransform rect)
        {
            if ((UnityEngine.Object)rect == (UnityEngine.Object)null)
            {
                return;
            }
            List <Component> componentList = ListPool <Component> .Get();

            RectTransform rectTransform = rect;

            while (true)
            {
                RectTransform parent = rectTransform.parent as RectTransform;
                if (LayoutRebuilder.ValidLayoutGroup(parent, componentList))
                {
                    rectTransform = parent;
                }
                else
                {
                    break;
                }
            }
            if ((UnityEngine.Object)rectTransform == (UnityEngine.Object)rect && !LayoutRebuilder.ValidController(rectTransform, componentList))
            {
                ListPool <Component> .Release(componentList);
            }
            else
            {
                LayoutRebuilder.MarkLayoutRootForRebuild(rectTransform);
                ListPool <Component> .Release(componentList);
            }
        }
Пример #2
0
        public static void MarkLayoutForRebuild(RectTransform rect)
        {
            if (!(rect == null))
            {
                List <Component> list = ListPool <Component> .Get();

                RectTransform rectTransform = rect;
                while (true)
                {
                    RectTransform rectTransform2 = rectTransform.parent as RectTransform;
                    if (!LayoutRebuilder.ValidLayoutGroup(rectTransform2, list))
                    {
                        break;
                    }
                    rectTransform = rectTransform2;
                }
                if (rectTransform == rect && !LayoutRebuilder.ValidController(rectTransform, list))
                {
                    ListPool <Component> .Release(list);
                }
                else
                {
                    LayoutRebuilder.MarkLayoutRootForRebuild(rectTransform);
                    ListPool <Component> .Release(list);
                }
            }
        }