reckfellENGINE

AspectRatioContainer

Размещает дочерние Control в прямоугольнике с заданным отношением ширины к высоте.

На этой странице
class AspectRatioContainerReckfellSharpНаследует Container

Задайте 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Конструктор
# AspectRatioContainer
C#
public AspectRatioContainer();

Создаёт контейнер с Ratio = 1, StretchMode = Fit и Center по обеим осям. Раскладка изменяет прямоугольники детей, а не масштабирует изображение автоматически.

Свойства4

AlignmentHorizontalСвойство
# AlignmentHorizontal
C#
public AspectRatioContainer.AlignmentMode AlignmentHorizontal { get; set; }

Begin/Center/End размещает целевой прямоугольник по горизонтали; Center по умолчанию. В RTL начало и конец зеркальны. При выходе за границы смещение может быть отрицательным.

AlignmentVerticalСвойство
# AlignmentVertical
C#
public AspectRatioContainer.AlignmentMode AlignmentVertical { get; set; }

Begin/Center/End размещает целевой прямоугольник по вертикали: сверху, по центру или снизу. Center по умолчанию. Не меняет вертикальные SizeFlags самого ребёнка.

RatioСвойство
# Ratio
C#
public float Ratio { get; set; }

Целевое отношение ширины ребёнка к высоте, 1 по умолчанию. Передавайте положительное конечное число. Минимумы, максимумы и SizeFlags ребёнка могут изменить окончательную пропорцию; изменение ставит раскладку в очередь.

StretchModeСвойство
# StretchMode
C#
public AspectRatioContainer.StretchModeEnum StretchMode { get; set; }

Способ вычисления целевого прямоугольника: Fit вписывает, Cover заполняет с возможным выходом за границы, WidthControlsHeight/HeightControlsWidth используют одну заданную ось. По умолчанию Fit. Cover не включает обрезание.

Методы8

GetAlignmentHorizontalAspectRatioContainer.AlignmentMode
# GetAlignmentHorizontal
C#
public AspectRatioContainer.AlignmentMode GetAlignmentHorizontal();

Begin/Center/End размещает целевой прямоугольник по горизонтали; Center по умолчанию. В RTL начало и конец зеркальны. При выходе за границы смещение может быть отрицательным.

Возвращает AspectRatioContainer.AlignmentMode

Сохранённое значение настройки, а не измеренный размер или пропорция ребёнка после раскладки.

GetAlignmentVerticalAspectRatioContainer.AlignmentMode
# GetAlignmentVertical
C#
public AspectRatioContainer.AlignmentMode GetAlignmentVertical();

Begin/Center/End размещает целевой прямоугольник по вертикали: сверху, по центру или снизу. Center по умолчанию. Не меняет вертикальные SizeFlags самого ребёнка.

Возвращает AspectRatioContainer.AlignmentMode

Сохранённое значение настройки, а не измеренный размер или пропорция ребёнка после раскладки.

GetRatiofloat
# GetRatio
C#
public float GetRatio();

Целевое отношение ширины ребёнка к высоте, 1 по умолчанию. Передавайте положительное конечное число. Минимумы, максимумы и SizeFlags ребёнка могут изменить окончательную пропорцию; изменение ставит раскладку в очередь.

Возвращает float

Сохранённое значение настройки, а не измеренный размер или пропорция ребёнка после раскладки.

GetStretchModeAspectRatioContainer.StretchModeEnum
# GetStretchMode
C#
public AspectRatioContainer.StretchModeEnum GetStretchMode();

Способ вычисления целевого прямоугольника: Fit вписывает, Cover заполняет с возможным выходом за границы, WidthControlsHeight/HeightControlsWidth используют одну заданную ось. По умолчанию Fit. Cover не включает обрезание.

Возвращает AspectRatioContainer.StretchModeEnum

Сохранённое значение настройки, а не измеренный размер или пропорция ребёнка после раскладки.

SetAlignmentHorizontalvoid
# SetAlignmentHorizontal
C#
public void SetAlignmentHorizontal(AspectRatioContainer.AlignmentMode alignmentHorizontal);

Begin/Center/End размещает целевой прямоугольник по горизонтали; Center по умолчанию. В RTL начало и конец зеркальны. При выходе за границы смещение может быть отрицательным.

Параметры
ИмяТипПо умолчанию
alignmentHorizontalAspectRatioContainer.AlignmentMode—
alignmentHorizontal

Begin, Center или End по горизонтали с учётом RTL.

SetAlignmentVerticalvoid
# SetAlignmentVertical
C#
public void SetAlignmentVertical(AspectRatioContainer.AlignmentMode alignmentVertical);

Begin/Center/End размещает целевой прямоугольник по вертикали: сверху, по центру или снизу. Center по умолчанию. Не меняет вертикальные SizeFlags самого ребёнка.

Параметры
ИмяТипПо умолчанию
alignmentVerticalAspectRatioContainer.AlignmentMode—
alignmentVertical

Begin — сверху, Center — по центру, End — снизу.

SetRatiovoid
# SetRatio
C#
public void SetRatio(float ratio);

Целевое отношение ширины ребёнка к высоте, 1 по умолчанию. Передавайте положительное конечное число. Минимумы, максимумы и SizeFlags ребёнка могут изменить окончательную пропорцию; изменение ставит раскладку в очередь.

Параметры
ИмяТипПо умолчанию
ratiofloat—
ratio

Положительное конечное отношение ширины к высоте, например 16f / 9f. Проверяйте внешние данные до вызова.

SetStretchModevoid
# SetStretchMode
C#
public void SetStretchMode(AspectRatioContainer.StretchModeEnum stretchMode);

Способ вычисления целевого прямоугольника: Fit вписывает, Cover заполняет с возможным выходом за границы, WidthControlsHeight/HeightControlsWidth используют одну заданную ось. По умолчанию Fit. Cover не включает обрезание.

Параметры
ИмяТипПо умолчанию
stretchModeAspectRatioContainer.StretchModeEnum—
stretchMode

Fit, Cover, WidthControlsHeight или HeightControlsWidth. Обрезание содержимого настраивается отдельно.

AspectRatioContainer.AlignmentMode

ЗначениеОписание
Begin = 0

Выравнивает дочерние элементы управления по началу (слева или сверху) контейнера.

Center = 1

Выравнивает дочерние элементы управления по центру контейнера.

End = 2

Выравнивает дочерние элементы управления по краю (справа или снизу) контейнера.

AspectRatioContainer.StretchModeEnum

ЗначениеОписание
Cover = 3

Ширина и высота дочерних элементов управления автоматически настраивается так, чтобы их ограничивающий прямоугольник покрывал всю область контейнера, сохраняя при этом соотношение сторон. Когда ограничивающий прямоугольник дочерних элементов управления превышает размер контейнера и включен Control.ClipContents, это позволяет отображать только область контейнера, ограниченную его собственным ограничивающим прямоугольником.

Fit = 2

Ограничивающий прямоугольник дочерних элементов управления автоматически подстраивается под размер контейнера, сохраняя при этом соотношение сторон.

HeightControlsWidth = 1

Ширина дочерних элементов управления автоматически регулируется в зависимости от высоты контейнера.

WidthControlsHeight = 0

Высота дочерних элементов управления автоматически регулируется в зависимости от ширины контейнера.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.