reckfellENGINE

NinePatchRect

Растягиваемая текстурная рамка с сохраняемыми краями.

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

NinePatchRect делит текстуру на девять областей по четырём PatchMargin: углы сохраняют локальные размеры, края и середина растягиваются или повторяются по AxisStretchHorizontal/Vertical. Используйте для декоративной рамки, если обычное растяжение TextureRect искажает углы.

Назначьте Texture, задайте неотрицательные толщины левого, правого, верхнего и нижнего края, затем размер Control. Margins измеряются в пикселях исходной области; их суммы должны помещаться в ней. Для повторяемой середины оставьте ей положительную ширину/высоту. Setter проверяет Side, но не ограничивает само значение margin: валидируйте внешние данные.

Встроенный минимальный размер равен (Left + Right, Top + Bottom), даже без Texture. Например, края 8/12 по горизонтали и 6/10 по вертикали дают минимум 20 × 16. CustomMinimumSize может увеличить его. PatchMargin — границы нарезки, не отступы содержимого: NinePatchRect не является Container и не размещает детей автоматически. Для раскладки добавьте подходящий контейнер; для панели с theme-ресурсом рассмотрите PanelContainer.

RegionRect выбирает исходную область в пикселях, а не UV 0…1. Нулевой Rect2 использует всю текстуру. Stretch растягивает область; Tile повторяет с возможным неполным последним фрагментом; TileFit подгоняет масштаб повторений, чтобы поместить целое число. Эти правила задаются отдельно для каждой оси. DrawCenter = false убирает только рисование середины, не меняет минимум и не создаёт область для дочернего содержимого.

TextureChanged испускается при замене ссылки Texture, включая очистку в null; повторное присваивание того же ресурса его не вызывает. Изменение самого ресурса обновляет перерисовку, но не испускает этот сигнал NinePatchRect. Texture остаётся общей ссылкой. MouseFilter по умолчанию Ignore, поэтому декоративная рамка не перехватывает мышь.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

NinePatchRectКонструктор
# NinePatchRect
C#
public NinePatchRect();

Создаёт декоративную рамку без текстуры: края 0, DrawCenter = true, оба режима осей Stretch, RegionRect нулевой, MouseFilter = Ignore.

Свойства9

AxisStretchHorizontalСвойство
# AxisStretchHorizontal
C#
public NinePatchRect.AxisStretchMode AxisStretchHorizontal { get; set; }

Режим внутренних областей по горизонтали: Stretch растягивает, Tile повторяет, TileFit подгоняет целое число повторений. Stretch по умолчанию. Не изменяет минимум из PatchMargin.

AxisStretchVerticalСвойство
# AxisStretchVertical
C#
public NinePatchRect.AxisStretchMode AxisStretchVertical { get; set; }

Режим внутренних областей по вертикали: Stretch, Tile или TileFit. Настраивается независимо от горизонтального; толщина верхнего/нижнего края задаётся PatchMargin.

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

Рисовать центральную область, true по умолчанию. false оставляет рамку и сохраняет прежний минимум. Не управляет детьми, раскладкой или попаданием мыши.

PatchMarginBottomСвойство
# PatchMarginBottom
C#
public int PatchMarginBottom { get; set; }

Толщина нижнего края в пикселях исходной области, 0 по умолчанию. Участвует в сумме минимального размера, но не задаёт отступ содержимого. Используйте неотрицательное значение, помещающееся в область.

PatchMarginLeftСвойство
# PatchMarginLeft
C#
public int PatchMarginLeft { get; set; }

Толщина левого края в пикселях исходной области, 0 по умолчанию. Участвует в сумме минимального размера, но не задаёт отступ содержимого. Используйте неотрицательное значение, помещающееся в область.

PatchMarginRightСвойство
# PatchMarginRight
C#
public int PatchMarginRight { get; set; }

Толщина правого края в пикселях исходной области, 0 по умолчанию. Участвует в сумме минимального размера, но не задаёт отступ содержимого. Используйте неотрицательное значение, помещающееся в область.

PatchMarginTopСвойство
# PatchMarginTop
C#
public int PatchMarginTop { get; set; }

Толщина верхнего края в пикселях исходной области, 0 по умолчанию. Участвует в сумме минимального размера, но не задаёт отступ содержимого. Используйте неотрицательное значение, помещающееся в область.

RegionRectСвойство
# RegionRect
C#
public Rect2 RegionRect { get; set; }

Исходная область в пикселях текстуры, не нормализованные UV. Нулевой Rect2 означает всю текстуру. Не меняет PatchMargin или минимум Control; задавайте область, в которую помещаются все края.

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

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

Методы12

GetHAxisStretchModeNinePatchRect.AxisStretchMode
# GetHAxisStretchMode
C#
public NinePatchRect.AxisStretchMode GetHAxisStretchMode();

Режим внутренних областей по горизонтали: Stretch растягивает, Tile повторяет, TileFit подгоняет целое число повторений. Stretch по умолчанию. Не изменяет минимум из PatchMargin.

Возвращает NinePatchRect.AxisStretchMode

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

GetPatchMarginint
# GetPatchMargin
C#
public int GetPatchMargin(Side margin);

Возвращает толщину выбранного края в пикселях исходной области. Это граница нарезки, не отступ дочернего содержимого.

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

Выбранная сторона Side.Left, Top, Right или Bottom.

Возвращает int

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

GetRegionRectRect2
# GetRegionRect
C#
public Rect2 GetRegionRect();

Исходная область в пикселях текстуры, не нормализованные UV. Нулевой Rect2 означает всю текстуру. Не меняет PatchMargin или минимум Control; задавайте область, в которую помещаются все края.

Возвращает Rect2

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

GetTextureTexture2D
# GetTexture
C#
public Texture2D GetTexture();

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

Возвращает Texture2D

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

GetVAxisStretchModeNinePatchRect.AxisStretchMode
# GetVAxisStretchMode
C#
public NinePatchRect.AxisStretchMode GetVAxisStretchMode();

Режим внутренних областей по вертикали: Stretch, Tile или TileFit. Настраивается независимо от горизонтального; толщина верхнего/нижнего края задаётся PatchMargin.

Возвращает NinePatchRect.AxisStretchMode

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

IsDrawCenterEnabledbool
# IsDrawCenterEnabled
C#
public bool IsDrawCenterEnabled();

Рисовать центральную область, true по умолчанию. false оставляет рамку и сохраняет прежний минимум. Не управляет детьми, раскладкой или попаданием мыши.

Возвращает bool

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

SetDrawCentervoid
# SetDrawCenter
C#
public void SetDrawCenter(bool drawCenter);

Рисовать центральную область, true по умолчанию. false оставляет рамку и сохраняет прежний минимум. Не управляет детьми, раскладкой или попаданием мыши.

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

Рисовать центральную область, true по умолчанию. false оставляет рамку и сохраняет прежний минимум. Не управляет детьми, раскладкой или попаданием мыши.

SetHAxisStretchModevoid
# SetHAxisStretchMode
C#
public void SetHAxisStretchMode(NinePatchRect.AxisStretchMode mode);

Режим внутренних областей по горизонтали: Stretch растягивает, Tile повторяет, TileFit подгоняет целое число повторений. Stretch по умолчанию. Не изменяет минимум из PatchMargin.

Параметры
ИмяТипПо умолчанию
modeNinePatchRect.AxisStretchMode—
mode

Режим внутренних областей по горизонтали: Stretch растягивает, Tile повторяет, TileFit подгоняет целое число повторений. Stretch по умолчанию. Не изменяет минимум из PatchMargin.

SetPatchMarginvoid
# SetPatchMargin
C#
public void SetPatchMargin(Side margin, int value);

Задаёт толщину выбранного края в пикселях и обновляет минимум. Side должен быть допустимым; отрицательные и чрезмерные размеры не отсекаются автоматически. Держите суммы краёв в пределах исходной области.

Параметры
ИмяТипПо умолчанию
marginSide—
valueint—
margin

Выбранная сторона Side.Left, Top, Right или Bottom.

value

Неотрицательная толщина края в пикселях исходной области; проверьте сумму противоположных краёв.

SetRegionRectvoid
# SetRegionRect
C#
public void SetRegionRect(Rect2 rect);

Исходная область в пикселях текстуры, не нормализованные UV. Нулевой Rect2 означает всю текстуру. Не меняет PatchMargin или минимум Control; задавайте область, в которую помещаются все края.

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

Исходная область в пикселях текстуры, не нормализованные UV. Нулевой Rect2 означает всю текстуру. Не меняет PatchMargin или минимум Control; задавайте область, в которую помещаются все края.

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

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

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

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

SetVAxisStretchModevoid
# SetVAxisStretchMode
C#
public void SetVAxisStretchMode(NinePatchRect.AxisStretchMode mode);

Режим внутренних областей по вертикали: Stretch, Tile или TileFit. Настраивается независимо от горизонтального; толщина верхнего/нижнего края задаётся PatchMargin.

Параметры
ИмяТипПо умолчанию
modeNinePatchRect.AxisStretchMode—
mode

Режим внутренних областей по вертикали: Stretch, Tile или TileFit. Настраивается независимо от горизонтального; толщина верхнего/нижнего края задаётся PatchMargin.

Сигналы и события1

TextureChangedСобытие
# TextureChanged
C#
public event Action TextureChanged;

Заменилась ссылка Texture, включая null. Не испускается при повторном присваивании того же ресурса или при его внутреннем Changed. Для изменений ресурса наблюдайте его собственный сигнал.

NinePatchRect.AxisStretchMode

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

Растягивает центральную текстуру по NinePatchRect. Это может привести к искажению текстуры.

Tile = 1

Повторяет центральную текстуру по NinePatchRect. Это не вызовет видимых искажений. Текстура должна быть бесшовной, чтобы это работало без отображения артефактов между краями.

TileFit = 2

Повторяет центральную текстуру по NinePatchRect, но также растягивает текстуру, чтобы убедиться, что каждый тайл виден полностью. Это может привести к искажению текстуры, но меньше, чем NinePatchRect.AxisStretchMode.Stretch. Текстура должна быть бесшовной, чтобы это работало без отображения артефактов между краями.

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

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

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

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