AspectRatioContainer
Размещает дочерние Control в прямоугольнике с заданным отношением ширины к высоте.
Задайте Ratio как ширину, делённую на высоту: например, 16f / 9f. Используйте положительное конечное значение: setter не проверяет ноль, отрицательные значения, NaN или бесконечность. Ограничение в инспекторе не заменяет проверку входных данных в коде. По умолчанию Ratio = 1, StretchMode = Fit, оба выравнивания Center.
Fit вписывает прямоугольник целиком; Cover заполняет контейнер с выходом за одну из границ. WidthControlsHeight берёт ширину контейнера и вычисляет высоту; HeightControlsWidth делает обратное. В области 100 × 100 при Ratio = 2 и центральном выравнивании Fit даёт размер 100 × 50 и позицию (0, 25), Cover — 200 × 100 и (-50, 0). Cover сам не включает ClipContents и не задаёт способ отображения текстуры внутри TextureRect.
Ratio — целевая пропорция раскладки, а не безусловная гарантия. Минимальный размер ребёнка применяется отдельно по каждой оси: минимум высоты 80 изменит результат Fit из примера на 100 × 80. SizeFlags и максимальный размер ребёнка также участвуют в окончательной раскладке. Если пропорция нарушена, сначала проверьте эти ограничения.
Раскладка выполняется отложенно. Подходящие прямые дочерние Control получают один и тот же целевой прямоугольник и могут перекрываться; это не список и не сетка. Контейнер заменяет их Position/Size и сбрасывает Rotation/Scale. Горизонтальные Begin/End учитывают RTL.
Не используйте у дочернего TextureRect ExpandMode FitWidthProportional или FitHeightProportional: эта комбинация не поддерживается, элемент пропускается при раскладке. Выберите другой ExpandMode и настройте StretchMode самого TextureRect отдельно.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
AspectRatioContainerКонструктор
public AspectRatioContainer();Создаёт контейнер с Ratio = 1, StretchMode = Fit и Center по обеим осям. Раскладка изменяет прямоугольники детей, а не масштабирует изображение автоматически.
Свойства4
AlignmentHorizontalСвойство
public AspectRatioContainer.AlignmentMode AlignmentHorizontal { get; set; }Begin/Center/End размещает целевой прямоугольник по горизонтали; Center по умолчанию. В RTL начало и конец зеркальны. При выходе за границы смещение может быть отрицательным.
AlignmentVerticalСвойство
public AspectRatioContainer.AlignmentMode AlignmentVertical { get; set; }Begin/Center/End размещает целевой прямоугольник по вертикали: сверху, по центру или снизу. Center по умолчанию. Не меняет вертикальные SizeFlags самого ребёнка.
RatioСвойство
public float Ratio { get; set; }Целевое отношение ширины ребёнка к высоте, 1 по умолчанию. Передавайте положительное конечное число. Минимумы, максимумы и SizeFlags ребёнка могут изменить окончательную пропорцию; изменение ставит раскладку в очередь.
StretchModeСвойство
public AspectRatioContainer.StretchModeEnum StretchMode { get; set; }Способ вычисления целевого прямоугольника: Fit вписывает, Cover заполняет с возможным выходом за границы, WidthControlsHeight/HeightControlsWidth используют одну заданную ось. По умолчанию Fit. Cover не включает обрезание.
Методы8
GetAlignmentHorizontalAspectRatioContainer.AlignmentMode
public AspectRatioContainer.AlignmentMode GetAlignmentHorizontal();Begin/Center/End размещает целевой прямоугольник по горизонтали; Center по умолчанию. В RTL начало и конец зеркальны. При выходе за границы смещение может быть отрицательным.
AspectRatioContainer.AlignmentModeСохранённое значение настройки, а не измеренный размер или пропорция ребёнка после раскладки.
GetAlignmentVerticalAspectRatioContainer.AlignmentMode
public AspectRatioContainer.AlignmentMode GetAlignmentVertical();Begin/Center/End размещает целевой прямоугольник по вертикали: сверху, по центру или снизу. Center по умолчанию. Не меняет вертикальные SizeFlags самого ребёнка.
AspectRatioContainer.AlignmentModeСохранённое значение настройки, а не измеренный размер или пропорция ребёнка после раскладки.
GetRatiofloat
public float GetRatio();Целевое отношение ширины ребёнка к высоте, 1 по умолчанию. Передавайте положительное конечное число. Минимумы, максимумы и SizeFlags ребёнка могут изменить окончательную пропорцию; изменение ставит раскладку в очередь.
floatСохранённое значение настройки, а не измеренный размер или пропорция ребёнка после раскладки.
GetStretchModeAspectRatioContainer.StretchModeEnum
public AspectRatioContainer.StretchModeEnum GetStretchMode();Способ вычисления целевого прямоугольника: Fit вписывает, Cover заполняет с возможным выходом за границы, WidthControlsHeight/HeightControlsWidth используют одну заданную ось. По умолчанию Fit. Cover не включает обрезание.
AspectRatioContainer.StretchModeEnumСохранённое значение настройки, а не измеренный размер или пропорция ребёнка после раскладки.
SetAlignmentHorizontalvoid
public void SetAlignmentHorizontal(AspectRatioContainer.AlignmentMode alignmentHorizontal);Begin/Center/End размещает целевой прямоугольник по горизонтали; Center по умолчанию. В RTL начало и конец зеркальны. При выходе за границы смещение может быть отрицательным.
| Имя | Тип | По умолчанию |
|---|---|---|
alignmentHorizontal | AspectRatioContainer.AlignmentMode | — |
alignmentHorizontalBegin, Center или End по горизонтали с учётом RTL.
SetAlignmentVerticalvoid
public void SetAlignmentVertical(AspectRatioContainer.AlignmentMode alignmentVertical);Begin/Center/End размещает целевой прямоугольник по вертикали: сверху, по центру или снизу. Center по умолчанию. Не меняет вертикальные SizeFlags самого ребёнка.
| Имя | Тип | По умолчанию |
|---|---|---|
alignmentVertical | AspectRatioContainer.AlignmentMode | — |
alignmentVerticalBegin — сверху, Center — по центру, End — снизу.
SetRatiovoid
public void SetRatio(float ratio);Целевое отношение ширины ребёнка к высоте, 1 по умолчанию. Передавайте положительное конечное число. Минимумы, максимумы и SizeFlags ребёнка могут изменить окончательную пропорцию; изменение ставит раскладку в очередь.
| Имя | Тип | По умолчанию |
|---|---|---|
ratio | float | — |
ratioПоложительное конечное отношение ширины к высоте, например 16f / 9f. Проверяйте внешние данные до вызова.
SetStretchModevoid
public void SetStretchMode(AspectRatioContainer.StretchModeEnum stretchMode);Способ вычисления целевого прямоугольника: Fit вписывает, Cover заполняет с возможным выходом за границы, WidthControlsHeight/HeightControlsWidth используют одну заданную ось. По умолчанию Fit. Cover не включает обрезание.
| Имя | Тип | По умолчанию |
|---|---|---|
stretchMode | AspectRatioContainer.StretchModeEnum | — |
stretchModeFit, Cover, WidthControlsHeight или HeightControlsWidth. Обрезание содержимого настраивается отдельно.
AspectRatioContainer.AlignmentMode
| Значение | Описание |
|---|---|
Begin = 0 | Выравнивает дочерние элементы управления по началу (слева или сверху) контейнера. |
Center = 1 | Выравнивает дочерние элементы управления по центру контейнера. |
End = 2 | Выравнивает дочерние элементы управления по краю (справа или снизу) контейнера. |
AspectRatioContainer.StretchModeEnum
| Значение | Описание |
|---|---|
Cover = 3 | Ширина и высота дочерних элементов управления автоматически настраивается так, чтобы их ограничивающий прямоугольник покрывал всю область контейнера, сохраняя при этом соотношение сторон.
Когда ограничивающий прямоугольник дочерних элементов управления превышает размер контейнера и включен |
Fit = 2 | Ограничивающий прямоугольник дочерних элементов управления автоматически подстраивается под размер контейнера, сохраняя при этом соотношение сторон. |
HeightControlsWidth = 1 | Ширина дочерних элементов управления автоматически регулируется в зависимости от высоты контейнера. |
WidthControlsHeight = 0 | Высота дочерних элементов управления автоматически регулируется в зависимости от ширины контейнера. |