Example #1
0
 public void setVerticalNearSideInEditor(VERTICAL_PADDING side)
 {
     mVerticalNearSide = side;
     setAnchorMode(mAnchorMode);
 }
Example #2
0
    // 停靠父节点的指定边界,并且大小不改变
    protected void setToPaddingParentSide(HORIZONTAL_PADDING horizontalSide, VERTICAL_PADDING verticalSide, bool relativeDistance)
    {
        Vector3[]  sides      = null;
        Vector2    pos        = transform.localPosition;
        GameObject parent     = transform.parent.gameObject;
        Vector2    parentSize = parent.GetComponent <RectTransform>().rect.size;

        if (parent != null)
        {
            sides = getSides(parent);
            WidgetUtility.getParentSides(parent, mParentSides);
        }
        int count = mDistanceToBoard.Length;

        for (int i = 0; i < count; ++i)
        {
            mDistanceToBoard[i].setRelative(0.0f);
            mDistanceToBoard[i].setAbsolute(0.0f);
        }
        // 相对于左右边界
        if (horizontalSide == HORIZONTAL_PADDING.LEFT)
        {
            if (relativeDistance)
            {
                mDistanceToBoard[0].mRelative = Mathf.Abs(sides[0].x / mParentSides[0].x);
                mDistanceToBoard[0].setAbsolute(0.0f);
            }
            else
            {
                mDistanceToBoard[0].mRelative = 1.0f;
                mDistanceToBoard[0].setAbsolute(sides[0].x - mParentSides[0].x);
            }
        }
        else if (horizontalSide == HORIZONTAL_PADDING.RIGHT)
        {
            if (relativeDistance)
            {
                mDistanceToBoard[2].mRelative = Mathf.Abs(sides[2].x / mParentSides[2].x);
                mDistanceToBoard[2].setAbsolute(0.0f);
            }
            else
            {
                mDistanceToBoard[2].mRelative = 1.0f;
                mDistanceToBoard[2].setAbsolute(sides[2].x - mParentSides[2].x);
            }
        }
        else if (horizontalSide == HORIZONTAL_PADDING.CENTER)
        {
            if (relativeDistance)
            {
                mHorizontalPositionRelative = pos.x / (parentSize.x * 0.5f);
                mHorizontalPositionAbsolute = 0;
            }
            else
            {
                mHorizontalPositionRelative = 0.0f;
                mHorizontalPositionAbsolute = (int)(pos.x + 0.5f * Mathf.Sign(pos.x));
            }
        }
        if (verticalSide == VERTICAL_PADDING.TOP)
        {
            if (relativeDistance)
            {
                mDistanceToBoard[1].mRelative = Mathf.Abs(sides[1].y / mParentSides[1].y);
                mDistanceToBoard[1].setAbsolute(0.0f);
            }
            else
            {
                mDistanceToBoard[1].mRelative = 1.0f;
                mDistanceToBoard[1].setAbsolute(sides[1].y - mParentSides[1].y);
            }
        }
        else if (verticalSide == VERTICAL_PADDING.BOTTOM)
        {
            if (relativeDistance)
            {
                mDistanceToBoard[3].mRelative = Mathf.Abs(sides[3].y / mParentSides[3].y);
                mDistanceToBoard[3].setAbsolute(0.0f);
            }
            else
            {
                mDistanceToBoard[3].mRelative = 1.0f;
                mDistanceToBoard[3].setAbsolute(sides[3].y - mParentSides[3].y);
            }
        }
        else if (verticalSide == VERTICAL_PADDING.CENTER)
        {
            if (relativeDistance)
            {
                mVerticalPositionRelative = pos.y / (parentSize.y * 0.5f);
                mVerticalPositionAbsolute = 0;
            }
            else
            {
                mVerticalPositionRelative = 0.0f;
                mVerticalPositionAbsolute = (int)(pos.y + 0.5f * Mathf.Sign(pos.y));
            }
        }
        for (int i = 0; i < 4; ++i)
        {
            mAnchorPoint[i].setRelative(0.0f);
            mAnchorPoint[i].setAbsolute(0.0f);
        }
    }