protected virtual void SetPivotAnchor(RectTransform rect, NewAlign align) { Vector2 new_pos = GNewUITools.GetAlignedPivot(align); rect.pivot = new_pos; rect.anchorMax = new_pos; rect.anchorMin = new_pos; }
public static Vector2 GetAlignedPivot(NewAlign align) { Vector2 pivot = Vector2.zero; switch (align) { case NewAlign.Left: pivot = new Vector2(0f, 0.5f); break; case NewAlign.Right: pivot = new Vector2(1f, 0.5f); break; case NewAlign.Top: pivot = new Vector2(0.5f, 1f); break; case NewAlign.Bottom: pivot = new Vector2(0.5f, 0f); break; case NewAlign.Center: pivot = new Vector2(0.5f, 0.5f); break; case NewAlign.TopLeft: pivot = new Vector2(0f, 1f); break; case NewAlign.TopRight: pivot = new Vector2(1f, 1f); break; case NewAlign.BottomLeft: pivot = new Vector2(0f, 0f); break; case NewAlign.BottomRight: pivot = new Vector2(1f, 0f); break; } return(pivot); }
//no-base call protected override void SetPivotAnchor(RectTransform rect, NewAlign align) { if (_IsExpandItem) { if (IsVertical) { if (align == NewAlign.BottomLeft || align == NewAlign.BottomRight) { align = NewAlign.Bottom; } else if (align == NewAlign.TopLeft || align == NewAlign.TopRight) { align = NewAlign.Top; } else if (align == NewAlign.Left || align == NewAlign.Right) { align = NewAlign.Center; } } else { if (align == NewAlign.BottomLeft || align == NewAlign.TopLeft) { align = NewAlign.Left; } else if (align == NewAlign.TopRight || align == NewAlign.BottomRight) { align = NewAlign.Right; } else if (align == NewAlign.Top || align == NewAlign.Bottom) { align = NewAlign.Center; } } } if (_ScrollRect != null) { if (IsVertical) { if (align == NewAlign.BottomLeft || align == NewAlign.Left || align == NewAlign.TopLeft) { align = _IsInverseDirection ? NewAlign.TopLeft : NewAlign.BottomLeft; } else if (align == NewAlign.BottomRight || align == NewAlign.Right || align == NewAlign.TopRight) { align = _IsInverseDirection ? NewAlign.TopRight : NewAlign.BottomRight; } else { align = _IsInverseDirection ? NewAlign.Top : NewAlign.Bottom; } } else { if (align == NewAlign.BottomLeft || align == NewAlign.Bottom || align == NewAlign.BottomRight) { align = _IsInverseDirection ? NewAlign.BottomRight : NewAlign.BottomLeft; } else if (align == NewAlign.TopLeft || align == NewAlign.Top || align == NewAlign.TopRight) { align = _IsInverseDirection ? NewAlign.TopRight : NewAlign.TopLeft; } else { align = _IsInverseDirection ? NewAlign.Right : NewAlign.Left; } } } Vector2 new_pos = GNewUITools.GetAlignedPivot(align); //Vector2 new_pos_cell = CellRect.anchorMin; //if (_ScrollRect != null) //{ // if (IsVertical) // { // new_pos.y = _IsInverseDirection ? 1 : 0; // } // else // { // new_pos.x = _IsInverseDirection ? 1 : 0; // } //} CellRect.pivot = new_pos; Vector2 size = CellSize; //CellRect.anchorMax = new_pos_cell; //CellRect.anchorMin = new_pos_cell; //AdjustAnchor(CellRect, align); CellRect.anchorMax = new_pos; CellRect.anchorMin = new_pos; if (size.x > 0 && size.y > 0) { CellRect.sizeDelta = size; } rect.pivot = new_pos; //rect.anchorMax = new_pos; //rect.anchorMin = new_pos; //AdjustContentAnchor(rect, align); AdjustItemAnchor(rect); }