UnityEngine.RectTransformUtility.FlipLayoutOnAxis C# (CSharp) Method

FlipLayoutOnAxis() public static method

Flips the alignment of the RectTransform along the horizontal or vertical axis, and optionally its children as well.

public static FlipLayoutOnAxis ( RectTransform rect, int axis, bool keepPositioning, bool recursive ) : void
rect RectTransform The RectTransform to flip.
axis int The axis to flip along. 0 is horizontal and 1 is vertical.
keepPositioning bool Flips around the pivot if true. Flips within the parent rect if false.
recursive bool Flip the children as well?
return void
        public static void FlipLayoutOnAxis(RectTransform rect, int axis, bool keepPositioning, bool recursive)
        {
            if (rect != null)
            {
                if (recursive)
                {
                    for (int i = 0; i < rect.childCount; i++)
                    {
                        RectTransform child = rect.GetChild(i) as RectTransform;
                        if (child != null)
                        {
                            FlipLayoutOnAxis(child, axis, false, true);
                        }
                    }
                }
                Vector2 pivot = rect.pivot;
                pivot[axis] = 1f - pivot[axis];
                rect.pivot = pivot;
                if (!keepPositioning)
                {
                    Vector2 anchoredPosition = rect.anchoredPosition;
                    anchoredPosition[axis] = -anchoredPosition[axis];
                    rect.anchoredPosition = anchoredPosition;
                    Vector2 anchorMin = rect.anchorMin;
                    Vector2 anchorMax = rect.anchorMax;
                    float num2 = anchorMin[axis];
                    anchorMin[axis] = 1f - anchorMax[axis];
                    anchorMax[axis] = 1f - num2;
                    rect.anchorMin = anchorMin;
                    rect.anchorMax = anchorMax;
                }
            }
        }

Usage Example

コード例 #1
0
 public static void FlipLayoutOnAxis(RectTransform rect, int axis, bool keepPositioning, bool recursive)
 {
     if (!(rect == null))
     {
         if (recursive)
         {
             for (int i = 0; i < rect.childCount; i++)
             {
                 RectTransform rectTransform = rect.GetChild(i) as RectTransform;
                 if (rectTransform != null)
                 {
                     RectTransformUtility.FlipLayoutOnAxis(rectTransform, axis, false, true);
                 }
             }
         }
         Vector2 pivot = rect.pivot;
         pivot[axis] = 1f - pivot[axis];
         rect.pivot  = pivot;
         if (!keepPositioning)
         {
             Vector2 anchoredPosition = rect.anchoredPosition;
             anchoredPosition[axis] = -anchoredPosition[axis];
             rect.anchoredPosition  = anchoredPosition;
             Vector2 anchorMin = rect.anchorMin;
             Vector2 anchorMax = rect.anchorMax;
             float   num       = anchorMin[axis];
             anchorMin[axis] = 1f - anchorMax[axis];
             anchorMax[axis] = 1f - num;
             rect.anchorMin  = anchorMin;
             rect.anchorMax  = anchorMax;
         }
     }
 }
All Usage Examples Of UnityEngine.RectTransformUtility::FlipLayoutOnAxis