TextureRect
Текстура интерфейса с отдельными правилами размера и отображения.
TextureRect рисует Texture2D внутри Control. Две настройки решают разные задачи: ExpandMode определяет встроенный минимальный размер, StretchMode — способ рисования в уже выделенном прямоугольнике. Изменение StretchMode не позволяет автоматически уменьшить элемент ниже размера текстуры.
Для изображения в области, размер которой задаёт родитель, обычно задайте ExpandMode = IgnoreSize и StretchMode = KeepAspectCentered. Первый режим убирает минимум, полученный от текстуры; второй вписывает изображение без искажения пропорций и центрирует. Сам размер области задают контейнер, якоря или Size. CustomMinimumSize и ограничения родительской раскладки продолжают действовать.
Scale растягивает по обеим осям и может исказить пропорции. Keep рисует исходный размер от начала области; KeepCentered центрирует его без масштабирования, поэтому изображение может выйти за границы. KeepAspect вписывает от начала, KeepAspectCentered — по центру. KeepAspectCovered заполняет область пропорционально, выбирая центральную часть исходной текстуры. Tile повторяет изображение; AtlasTexture с ненулевым Margin в этом режиме не поддерживается.
KeepSize — ExpandMode по умолчанию: минимум равен размеру текстуры. IgnoreSize даёт нулевой встроенный минимум. FitWidth берёт текущую высоту как минимум ширины; FitWidthProportional умножает её на ширина/высота текстуры. FitHeight и FitHeightProportional делают обратное. Например, для текстуры 80 × 40 и высоты элемента 30 минимальная ширина равна 30 в FitWidth и 60 в FitWidthProportional. Это правила минимума, а не команда немедленно изменить Size.
Не сочетайте FitWidthProportional/FitHeightProportional с родительским AspectRatioContainer: такая комбинация пропускается при раскладке. Для неё выберите IgnoreSize и управляйте пропорциями через контейнер или StretchMode.
FlipH/FlipV отражают отображение, не редактируя исходный ресурс. Texture — общая ссылка: изменение самого ресурса может затронуть другие элементы. При Texture = null изображение не рисуется, но явные ограничения Control сохраняются. MouseFilter по умолчанию Pass; для чисто декоративной картинки поверх интерактивного интерфейса задайте Ignore.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
TextureRectКонструктор
public TextureRect();Создаёт Control без текстуры: ExpandMode = KeepSize, StretchMode = Scale, отражения выключены, MouseFilter = Pass.
Свойства5
ExpandModeСвойство
public TextureRect.ExpandModeEnum ExpandMode { get; set; }Правило встроенного минимума, KeepSize по умолчанию. IgnoreSize убирает минимум текстуры. FitWidth/FitHeight зависят от текущего размера противоположной оси, пропорциональные варианты дополнительно учитывают отношение сторон текстуры. Не задаёт способ рисования.
FlipHСвойство
public bool FlipH { get; set; }Отражение рисунка по горизонтали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.
FlipVСвойство
public bool FlipV { get; set; }Отражение рисунка по вертикали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.
StretchModeСвойство
public TextureRect.StretchModeEnum StretchMode { get; set; }Способ рисования в выделенной области, Scale по умолчанию. KeepAspectCentered вписывает без искажения; KeepAspectCovered заполняет с центральным обрезанием. Не меняет встроенный минимум ExpandMode. Tile с AtlasTexture и ненулевым Margin не поддерживается.
TextureСвойство
public Texture2D Texture { get; set; }Общая ссылка на Texture2D; null отключает рисунок. Замена обновляет минимум и перерисовку, но не отменяет CustomMinimumSize. Изменения ресурса также отслеживаются.
Методы10
GetExpandModeTextureRect.ExpandModeEnum
public TextureRect.ExpandModeEnum GetExpandMode();Правило встроенного минимума, KeepSize по умолчанию. IgnoreSize убирает минимум текстуры. FitWidth/FitHeight зависят от текущего размера противоположной оси, пропорциональные варианты дополнительно учитывают отношение сторон текстуры. Не задаёт способ рисования.
TextureRect.ExpandModeEnumТекущее сохранённое значение настройки.
GetStretchModeTextureRect.StretchModeEnum
public TextureRect.StretchModeEnum GetStretchMode();Способ рисования в выделенной области, Scale по умолчанию. KeepAspectCentered вписывает без искажения; KeepAspectCovered заполняет с центральным обрезанием. Не меняет встроенный минимум ExpandMode. Tile с AtlasTexture и ненулевым Margin не поддерживается.
TextureRect.StretchModeEnumТекущее сохранённое значение настройки.
GetTextureTexture2D
public Texture2D GetTexture();Общая ссылка на Texture2D; null отключает рисунок. Замена обновляет минимум и перерисовку, но не отменяет CustomMinimumSize. Изменения ресурса также отслеживаются.
Texture2DТекущая общая ссылка Texture2D либо null.
IsFlippedHbool
public bool IsFlippedH();Отражение рисунка по горизонтали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.
boolТекущее сохранённое значение настройки.
IsFlippedVbool
public bool IsFlippedV();Отражение рисунка по вертикали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.
boolТекущее сохранённое значение настройки.
SetExpandModevoid
public void SetExpandMode(TextureRect.ExpandModeEnum expandMode);Правило встроенного минимума, KeepSize по умолчанию. IgnoreSize убирает минимум текстуры. FitWidth/FitHeight зависят от текущего размера противоположной оси, пропорциональные варианты дополнительно учитывают отношение сторон текстуры. Не задаёт способ рисования.
| Имя | Тип | По умолчанию |
|---|---|---|
expandMode | TextureRect.ExpandModeEnum | — |
expandModeПравило встроенного минимума, KeepSize по умолчанию. IgnoreSize убирает минимум текстуры. FitWidth/FitHeight зависят от текущего размера противоположной оси, пропорциональные варианты дополнительно учитывают отношение сторон текстуры. Не задаёт способ рисования.
SetFlipHvoid
public void SetFlipH(bool enable);Отражение рисунка по горизонтали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableОтражение рисунка по горизонтали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.
SetFlipVvoid
public void SetFlipV(bool enable);Отражение рисунка по вертикали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableОтражение рисунка по вертикали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.
SetStretchModevoid
public void SetStretchMode(TextureRect.StretchModeEnum stretchMode);Способ рисования в выделенной области, Scale по умолчанию. KeepAspectCentered вписывает без искажения; KeepAspectCovered заполняет с центральным обрезанием. Не меняет встроенный минимум ExpandMode. Tile с AtlasTexture и ненулевым Margin не поддерживается.
| Имя | Тип | По умолчанию |
|---|---|---|
stretchMode | TextureRect.StretchModeEnum | — |
stretchModeСпособ рисования в выделенной области, Scale по умолчанию. KeepAspectCentered вписывает без искажения; KeepAspectCovered заполняет с центральным обрезанием. Не меняет встроенный минимум ExpandMode. Tile с AtlasTexture и ненулевым Margin не поддерживается.
SetTexturevoid
public void SetTexture(Texture2D texture);Общая ссылка на Texture2D; null отключает рисунок. Замена обновляет минимум и перерисовку, но не отменяет CustomMinimumSize. Изменения ресурса также отслеживаются.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
textureОбщая Texture2D либо null для очистки рисунка.
TextureRect.ExpandModeEnum
| Значение | Описание |
|---|---|
FitHeight = 4 | Ширина текстуры будет проигнорирована. Минимальная высота будет равна текущей ширине. Полезно для вертикальных макетов, например, внутри |
FitHeightProportional = 5 | То же, что и |
FitWidth = 2 | Высота текстуры будет проигнорирована. Минимальная ширина будет равна текущей высоте. Полезно для горизонтальных макетов, например, внутри |
FitWidthProportional = 3 | То же, что и |
IgnoreSize = 1 | Размер текстуры не будет учитываться при расчете минимального размера, поэтому |
KeepSize = 0 | Минимальный размер будет равен размеру текстуры, т.е. |
TextureRect.StretchModeEnum
| Значение | Описание |
|---|---|
Keep = 2 | Текстура сохраняет свой исходный размер и располагается в верхнем левом углу ограничивающего прямоугольника. |
KeepAspect = 4 | Масштабируйте текстуру так, чтобы она вписывалась в ограничивающий прямоугольник узла, но сохраняйте пропорции текстуры. |
KeepAspectCentered = 5 | Масштабируйте текстуру так, чтобы она вписывалась в ограничивающий прямоугольник узла, отцентрируйте ее и сохраните пропорции. |
KeepAspectCovered = 6 | Масштабируйте текстуру так, чтобы короткая сторона соответствовала ограничивающему прямоугольнику. Другая сторона обрезалась до границ узла. |
KeepCentered = 3 | Текстура сохраняет свой исходный размер и остается в центре ограничивающего прямоугольника узла. |
Scale = 0 | Масштабируйте так, чтобы он соответствовал ограничивающему прямоугольнику узла. |
Tile = 1 | Замостить внутри ограничивающего прямоугольника узла.
Примечание: Режим |