예제 #1
0
        Vector2 GetStartPosition()
        {
            var rectTransform = Layout.transform as RectTransform;

            var anchor_position = groupPositions[(int)Layout.GroupPosition];
            var start_position  = new Vector2(
                rectTransform.rect.width * (anchor_position.x - rectTransform.pivot.x),
                rectTransform.rect.height * (anchor_position.y - rectTransform.pivot.y)
                );

            start_position.x -= anchor_position.x * Layout.UISize.x;
            start_position.y += (1 - anchor_position.y) * Layout.UISize.y;

            start_position.x += Layout.GetMarginLeft() * ((1 - anchor_position.x) * 2 - 1);
            start_position.y += Layout.GetMarginTop() * ((1 - anchor_position.y) * 2 - 1);

            start_position.x += Layout.PaddingInner.Left;
            start_position.y -= Layout.PaddingInner.Top;

            return(start_position);
        }
예제 #2
0
        /// <summary>
        /// Resize group.
        /// </summary>
        /// <param name="group">LayoutElementInfo group.</param>
        public void ResizeGroup(List <List <LayoutElementInfo> > group)
        {
            var rectTransform = Layout.transform as RectTransform;
            var width         = rectTransform.rect.width - (Layout.GetMarginLeft() + Layout.GetMarginRight()) - (Layout.PaddingInner.Left + Layout.PaddingInner.Right);
            var height        = rectTransform.rect.height - (Layout.GetMarginTop() + Layout.GetMarginBottom()) - (Layout.PaddingInner.Top + Layout.PaddingInner.Bottom);
            var size          = new Vector2(width, height);

            if ((Layout.ChildrenWidth == ChildrenSize.ShrinkOnOverflow) && (Layout.ChildrenHeight == ChildrenSize.ShrinkOnOverflow))
            {
                ShrinkOnOverflow(group, size);
            }
            else if (Layout.LayoutType == LayoutTypes.Grid)
            {
                if (Layout.ChildrenWidth == ChildrenSize.FitContainer)
                {
                    ResizeColumnWidthToFit(size.x, group);
                }
                else if (Layout.ChildrenWidth == ChildrenSize.ShrinkOnOverflow)
                {
                    ShrinkColumnWidthToFit(size.x, group);
                }

                if (Layout.ChildrenHeight == ChildrenSize.FitContainer)
                {
                    ResizeRowHeightToFit(size.y, group);
                }
                else if (Layout.ChildrenHeight == ChildrenSize.ShrinkOnOverflow)
                {
                    ShrinkRowHeightToFit(size.y, group);
                }
            }
            else
            {
                if (Layout.Stacking == Stackings.Horizontal)
                {
                    if (Layout.ChildrenWidth == ChildrenSize.FitContainer)
                    {
                        ResizeWidthToFit(size.x, group);
                    }
                    else if (Layout.ChildrenWidth == ChildrenSize.ShrinkOnOverflow)
                    {
                        ShrinkWidthToFit(size.x, group);
                    }

                    if (Layout.ChildrenHeight == ChildrenSize.FitContainer)
                    {
                        ResizeRowHeightToFit(size.y, group);
                    }
                    else if (Layout.ChildrenHeight == ChildrenSize.ShrinkOnOverflow)
                    {
                        ShrinkRowHeightToFit(size.y, group);
                    }
                }
                else
                {
                    if (Layout.ChildrenWidth == ChildrenSize.FitContainer)
                    {
                        ResizeColumnWidthToFit(size.x, group);
                    }
                    else if (Layout.ChildrenWidth == ChildrenSize.ShrinkOnOverflow)
                    {
                        ShrinkColumnWidthToFit(size.x, group);
                    }
                    if (Layout.ChildrenHeight == ChildrenSize.FitContainer)
                    {
                        ResizeHeightToFit(size.y, group);
                    }
                    else if (Layout.ChildrenHeight == ChildrenSize.ShrinkOnOverflow)
                    {
                        ShrinkHeightToFit(size.y, group);
                    }
                }
            }
        }