reckfellENGINE

TextureRect

Текстура интерфейса с отдельными правилами размера и отображения.

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

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Конструктор
# TextureRect
C#
public TextureRect();

Создаёт Control без текстуры: ExpandMode = KeepSize, StretchMode = Scale, отражения выключены, MouseFilter = Pass.

Свойства5

ExpandModeСвойство
# ExpandMode
C#
public TextureRect.ExpandModeEnum ExpandMode { get; set; }

Правило встроенного минимума, KeepSize по умолчанию. IgnoreSize убирает минимум текстуры. FitWidth/FitHeight зависят от текущего размера противоположной оси, пропорциональные варианты дополнительно учитывают отношение сторон текстуры. Не задаёт способ рисования.

FlipHСвойство
# FlipH
C#
public bool FlipH { get; set; }

Отражение рисунка по горизонтали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.

FlipVСвойство
# FlipV
C#
public bool FlipV { get; set; }

Отражение рисунка по вертикали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.

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

Способ рисования в выделенной области, Scale по умолчанию. KeepAspectCentered вписывает без искажения; KeepAspectCovered заполняет с центральным обрезанием. Не меняет встроенный минимум ExpandMode. Tile с AtlasTexture и ненулевым Margin не поддерживается.

TextureСвойство
# Texture
C#
public Texture2D Texture { get; set; }

Общая ссылка на Texture2D; null отключает рисунок. Замена обновляет минимум и перерисовку, но не отменяет CustomMinimumSize. Изменения ресурса также отслеживаются.

Методы10

GetExpandModeTextureRect.ExpandModeEnum
# GetExpandMode
C#
public TextureRect.ExpandModeEnum GetExpandMode();

Правило встроенного минимума, KeepSize по умолчанию. IgnoreSize убирает минимум текстуры. FitWidth/FitHeight зависят от текущего размера противоположной оси, пропорциональные варианты дополнительно учитывают отношение сторон текстуры. Не задаёт способ рисования.

Возвращает TextureRect.ExpandModeEnum

Текущее сохранённое значение настройки.

GetStretchModeTextureRect.StretchModeEnum
# GetStretchMode
C#
public TextureRect.StretchModeEnum GetStretchMode();

Способ рисования в выделенной области, Scale по умолчанию. KeepAspectCentered вписывает без искажения; KeepAspectCovered заполняет с центральным обрезанием. Не меняет встроенный минимум ExpandMode. Tile с AtlasTexture и ненулевым Margin не поддерживается.

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

Текущее сохранённое значение настройки.

GetTextureTexture2D
# GetTexture
C#
public Texture2D GetTexture();

Общая ссылка на Texture2D; null отключает рисунок. Замена обновляет минимум и перерисовку, но не отменяет CustomMinimumSize. Изменения ресурса также отслеживаются.

Возвращает Texture2D

Текущая общая ссылка Texture2D либо null.

IsFlippedHbool
# IsFlippedH
C#
public bool IsFlippedH();

Отражение рисунка по горизонтали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.

Возвращает bool

Текущее сохранённое значение настройки.

IsFlippedVbool
# IsFlippedV
C#
public bool IsFlippedV();

Отражение рисунка по вертикали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.

Возвращает bool

Текущее сохранённое значение настройки.

SetExpandModevoid
# SetExpandMode
C#
public void SetExpandMode(TextureRect.ExpandModeEnum expandMode);

Правило встроенного минимума, KeepSize по умолчанию. IgnoreSize убирает минимум текстуры. FitWidth/FitHeight зависят от текущего размера противоположной оси, пропорциональные варианты дополнительно учитывают отношение сторон текстуры. Не задаёт способ рисования.

Параметры
ИмяТипПо умолчанию
expandModeTextureRect.ExpandModeEnum—
expandMode

Правило встроенного минимума, KeepSize по умолчанию. IgnoreSize убирает минимум текстуры. FitWidth/FitHeight зависят от текущего размера противоположной оси, пропорциональные варианты дополнительно учитывают отношение сторон текстуры. Не задаёт способ рисования.

SetFlipHvoid
# SetFlipH
C#
public void SetFlipH(bool enable);

Отражение рисунка по горизонтали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.

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

Отражение рисунка по горизонтали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.

SetFlipVvoid
# SetFlipV
C#
public void SetFlipV(bool enable);

Отражение рисунка по вертикали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.

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

Отражение рисунка по вертикали, false по умолчанию. Не меняет исходный Texture2D, размер Control или встроенный минимум.

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

Способ рисования в выделенной области, Scale по умолчанию. KeepAspectCentered вписывает без искажения; KeepAspectCovered заполняет с центральным обрезанием. Не меняет встроенный минимум ExpandMode. Tile с AtlasTexture и ненулевым Margin не поддерживается.

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

Способ рисования в выделенной области, Scale по умолчанию. KeepAspectCentered вписывает без искажения; KeepAspectCovered заполняет с центральным обрезанием. Не меняет встроенный минимум ExpandMode. Tile с AtlasTexture и ненулевым Margin не поддерживается.

SetTexturevoid
# SetTexture
C#
public void SetTexture(Texture2D texture);

Общая ссылка на Texture2D; null отключает рисунок. Замена обновляет минимум и перерисовку, но не отменяет CustomMinimumSize. Изменения ресурса также отслеживаются.

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

Общая Texture2D либо null для очистки рисунка.

TextureRect.ExpandModeEnum

ЗначениеОписание
FitHeight = 4

Ширина текстуры будет проигнорирована. Минимальная высота будет равна текущей ширине. Полезно для вертикальных макетов, например, внутри VBoxContainer.

FitHeightProportional = 5

То же, что и TextureRect.ExpandModeEnum.FitHeight, но сохраняет пропорции текстуры.

FitWidth = 2

Высота текстуры будет проигнорирована. Минимальная ширина будет равна текущей высоте. Полезно для горизонтальных макетов, например, внутри HBoxContainer.

FitWidthProportional = 3

То же, что и TextureRect.ExpandModeEnum.FitWidth, но сохраняет пропорции текстуры.

IgnoreSize = 1

Размер текстуры не будет учитываться при расчете минимального размера, поэтому TextureRect можно уменьшить до размера, превышающего размер текстуры.

KeepSize = 0

Минимальный размер будет равен размеру текстуры, т.е. TextureRect не может быть меньше текстуры.

TextureRect.StretchModeEnum

ЗначениеОписание
Keep = 2

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

KeepAspect = 4

Масштабируйте текстуру так, чтобы она вписывалась в ограничивающий прямоугольник узла, но сохраняйте пропорции текстуры.

KeepAspectCentered = 5

Масштабируйте текстуру так, чтобы она вписывалась в ограничивающий прямоугольник узла, отцентрируйте ее и сохраните пропорции.

KeepAspectCovered = 6

Масштабируйте текстуру так, чтобы короткая сторона соответствовала ограничивающему прямоугольнику. Другая сторона обрезалась до границ узла.

KeepCentered = 3

Текстура сохраняет свой исходный размер и остается в центре ограничивающего прямоугольника узла.

Scale = 0

Масштабируйте так, чтобы он соответствовал ограничивающему прямоугольнику узла.

Tile = 1

Замостить внутри ограничивающего прямоугольника узла. Примечание: Режим TextureRect.StretchModeEnum.Tile не поддерживается для TextureRect.Texture, установленного на AtlasTexture с ненулевым AtlasTexture.Margin.

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

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

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

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