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;
}
}
}