Class LayoutGroup
Inherited Members
Namespace: UnityEngine.UI
Assembly: UnityEngine.UI.dll
Syntax
[DisallowMultipleComponent]
[ExecuteAlways]
[RequireComponent(typeof(RectTransform))]
public abstract class LayoutGroup : UIBehaviour, ILayoutElement, ILayoutGroup, ILayoutController
Constructors
LayoutGroup()
Declaration
protected LayoutGroup()
Fields
m_ChildAlignment
Declaration
[SerializeField]
protected TextAnchor m_ChildAlignment
Field Value
Type | Description |
---|---|
TextAnchor |
m_Padding
Declaration
[SerializeField]
protected RectOffset m_Padding
Field Value
Type | Description |
---|---|
RectOffset |
m_Tracker
Declaration
protected DrivenRectTransformTracker m_Tracker
Field Value
Type | Description |
---|---|
DrivenRectTransformTracker |
Properties
childAlignment
The alignment to use for the child layout elements in the layout group.
Declaration
public TextAnchor childAlignment { get; set; }
Property Value
Type | Description |
---|---|
TextAnchor |
Remarks
If a layout element does not specify a flexible width or height, its child elements many not use the available space within the layout group. In this case, use the alignment settings to specify how to align child elements within their layout group.
flexibleHeight
See LayoutElement.flexibleHeight
Declaration
public virtual float flexibleHeight { get; }
Property Value
Type | Description |
---|---|
float |
flexibleWidth
See LayoutElement.flexibleWidth
Declaration
public virtual float flexibleWidth { get; }
Property Value
Type | Description |
---|---|
float |
layoutPriority
See LayoutElement.layoutPriority
Declaration
public virtual int layoutPriority { get; }
Property Value
Type | Description |
---|---|
int |
minHeight
See LayoutElement.minHeight
Declaration
public virtual float minHeight { get; }
Property Value
Type | Description |
---|---|
float |
minWidth
See LayoutElement.minWidth
Declaration
public virtual float minWidth { get; }
Property Value
Type | Description |
---|---|
float |
padding
The padding to add around the child layout elements.
Declaration
public RectOffset padding { get; set; }
Property Value
Type | Description |
---|---|
RectOffset |
preferredHeight
See LayoutElement.preferredHeight
Declaration
public virtual float preferredHeight { get; }
Property Value
Type | Description |
---|---|
float |
preferredWidth
See LayoutElement.preferredWidth
Declaration
public virtual float preferredWidth { get; }
Property Value
Type | Description |
---|---|
float |
rectChildren
Declaration
protected List<RectTransform> rectChildren { get; }
Property Value
Type | Description |
---|---|
List<RectTransform> |
rectTransform
Declaration
protected RectTransform rectTransform { get; }
Property Value
Type | Description |
---|---|
RectTransform |
Methods
CalculateLayoutInputHorizontal()
After this method is invoked, layout horizontal input properties should return up-to-date values. Children will already have up-to-date layout horizontal inputs when this methods is called.
Declaration
public virtual void CalculateLayoutInputHorizontal()
CalculateLayoutInputVertical()
After this method is invoked, layout vertical input properties should return up-to-date values. Children will already have up-to-date layout vertical inputs when this methods is called.
Declaration
public abstract void CalculateLayoutInputVertical()
GetAlignmentOnAxis(int)
Returns the alignment on the specified axis as a fraction where 0 is left/top, 0.5 is middle, and 1 is right/bottom.
Declaration
protected float GetAlignmentOnAxis(int axis)
Parameters
Type | Name | Description |
---|---|---|
int | axis | The axis to get alignment along. 0 is horizontal and 1 is vertical. |
Returns
Type | Description |
---|---|
float | The alignment as a fraction where 0 is left/top, 0.5 is middle, and 1 is right/bottom. |
GetStartOffset(int, float)
Returns the calculated position of the first child layout element along the given axis.
Declaration
protected float GetStartOffset(int axis, float requiredSpaceWithoutPadding)
Parameters
Type | Name | Description |
---|---|---|
int | axis | The axis index. 0 is horizontal and 1 is vertical. |
float | requiredSpaceWithoutPadding | The total space required on the given axis for all the layout elements including spacing and excluding padding. |
Returns
Type | Description |
---|---|
float | The position of the first child along the given axis. |
GetTotalFlexibleSize(int)
The flexible size for the layout group on the given axis.
Declaration
protected float GetTotalFlexibleSize(int axis)
Parameters
Type | Name | Description |
---|---|---|
int | axis | The axis index. 0 is horizontal and 1 is vertical. |
Returns
Type | Description |
---|---|
float | The flexible size |
GetTotalMinSize(int)
The min size for the layout group on the given axis.
Declaration
protected float GetTotalMinSize(int axis)
Parameters
Type | Name | Description |
---|---|---|
int | axis | The axis index. 0 is horizontal and 1 is vertical. |
Returns
Type | Description |
---|---|
float | The min size |
GetTotalPreferredSize(int)
The preferred size for the layout group on the given axis.
Declaration
protected float GetTotalPreferredSize(int axis)
Parameters
Type | Name | Description |
---|---|---|
int | axis | The axis index. 0 is horizontal and 1 is vertical. |
Returns
Type | Description |
---|---|
float | The preferred size. |
OnDidApplyAnimationProperties()
Callback for when properties have been changed by animation.
Declaration
protected override void OnDidApplyAnimationProperties()
Overrides
OnDisable()
Declaration
protected override void OnDisable()
Overrides
OnEnable()
Declaration
protected override void OnEnable()
Overrides
OnRectTransformDimensionsChange()
This callback is called when the dimensions of an associated RectTransform change. It is always called before Awake, OnEnable, or Start. The call is also made to all child RectTransforms, regardless of whether their dimensions change (which depends on how they are anchored).
Declaration
protected override void OnRectTransformDimensionsChange()
Overrides
OnTransformChildrenChanged()
Declaration
protected virtual void OnTransformChildrenChanged()
OnValidate()
Declaration
protected override void OnValidate()
Overrides
SetChildAlongAxis(RectTransform, int, float)
Set the position and size of a child layout element along the given axis.
Declaration
protected void SetChildAlongAxis(RectTransform rect, int axis, float pos)
Parameters
Type | Name | Description |
---|---|---|
RectTransform | rect | The RectTransform of the child layout element. |
int | axis | The axis to set the position and size along. 0 is horizontal and 1 is vertical. |
float | pos | The position from the left side or top. |
SetChildAlongAxis(RectTransform, int, float, float)
Set the position and size of a child layout element along the given axis.
Declaration
protected void SetChildAlongAxis(RectTransform rect, int axis, float pos, float size)
Parameters
Type | Name | Description |
---|---|---|
RectTransform | rect | The RectTransform of the child layout element. |
int | axis | The axis to set the position and size along. 0 is horizontal and 1 is vertical. |
float | pos | The position from the left side or top. |
float | size | The size. |
SetChildAlongAxisWithScale(RectTransform, int, float, float)
Set the position and size of a child layout element along the given axis.
Declaration
protected void SetChildAlongAxisWithScale(RectTransform rect, int axis, float pos, float scaleFactor)
Parameters
Type | Name | Description |
---|---|---|
RectTransform | rect | The RectTransform of the child layout element. |
int | axis | The axis to set the position and size along. 0 is horizontal and 1 is vertical. |
float | pos | The position from the left side or top. |
float | scaleFactor |
SetChildAlongAxisWithScale(RectTransform, int, float, float, float)
Set the position and size of a child layout element along the given axis.
Declaration
protected void SetChildAlongAxisWithScale(RectTransform rect, int axis, float pos, float size, float scaleFactor)
Parameters
Type | Name | Description |
---|---|---|
RectTransform | rect | The RectTransform of the child layout element. |
int | axis | The axis to set the position and size along. 0 is horizontal and 1 is vertical. |
float | pos | The position from the left side or top. |
float | size | The size. |
float | scaleFactor |
SetDirty()
Mark the LayoutGroup as dirty.
Declaration
protected void SetDirty()
SetLayoutHorizontal()
Callback invoked by the auto layout system which handles horizontal aspects of the layout.
Declaration
public abstract void SetLayoutHorizontal()
SetLayoutInputForAxis(float, float, float, int)
Used to set the calculated layout properties for the given axis.
Declaration
protected void SetLayoutInputForAxis(float totalMin, float totalPreferred, float totalFlexible, int axis)
Parameters
Type | Name | Description |
---|---|---|
float | totalMin | The min size for the layout group. |
float | totalPreferred | The preferred size for the layout group. |
float | totalFlexible | The flexible size for the layout group. |
int | axis | The axis to set sizes for. 0 is horizontal and 1 is vertical. |
SetLayoutVertical()
Callback invoked by the auto layout system which handles vertical aspects of the layout.
Declaration
public abstract void SetLayoutVertical()
SetProperty<T>(ref T, T)
Helper method used to set a given property if it has changed.
Declaration
protected void SetProperty<T>(ref T currentValue, T newValue)
Parameters
Type | Name | Description |
---|---|---|
T | currentValue | A reference to the member value. |
T | newValue | The new value. |
Type Parameters
Name | Description |
---|---|
T |