Beispiel #1
0
    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;
    }
Beispiel #2
0
    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);
    }
Beispiel #3
0
    //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);
    }