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