AtlasTexture
Область общего атласа для 2D-рисования без копирования исходных пикселей.
AtlasTexture выбирает Region из общей Atlas и добавляет логический Margin. Используйте несколько ресурсов для элементов одного спрайт-листа; исходное изображение остаётся общим. Для создания отдельной пиксельной текстуры получите вырезку через GetImage и создайте ImageTexture, если данные источника доступны. Сам AtlasTexture не выделяет GPU-копию области.
Region использует координаты текстуры. Margin.Position задаёт смещение содержимого, Margin.Size — добавку к логическому размеру, а GetImage не включает эти поля. Нулевые оси Region используют соответствующий размер источника. Для точной нарезки задавайте целые границы внутри атласа.
Повторение области не эквивалентно независимой тайловой текстуре: в текущем DrawRect флаг tile не создаёт повторяемую вырезку. Для тайлов используйте подходящий источник или отдельное изображение. FilterClip ограничивает выборку при рисовании, но не исправляет исходные mipmaps. В 3D нельзя полагаться на 2D-команды обрезки: RID указывает на общий источник.
Проверены вырезанные пиксели, размеры, margin, вложенность, передача параметров рисования и сохранение в Windows Forward+/Vulkan. Видимые швы, производительность упаковки, 3D-материалы и все варианты повторения не прошли визуальную приёмку в этом прогоне.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
AtlasTextureКонструктор
public AtlasTexture();Создаёт AtlasTexture без источника: Atlas = null, Region и Margin нулевые, FilterClip = false. Без источника размер-заглушка 1×1, GetImage возвращает null. Назначьте Atlas до использования пикселей.
Свойства4
AtlasСвойство
public Texture2D Atlas { get; set; }Общий исходный Texture2D; по умолчанию null. Назначение не копирует пиксели и не создаёт отдельную GPU-текстуру для вырезанной области. GetRid возвращает RID источника. Вложенные AtlasTexture поддерживаются, но не создавайте ссылки на себя или циклы. Несколько областей могут использовать один источник.
FilterClipСвойство
public bool FilterClip { get; set; }По умолчанию false. Передаёт ограничение выборки областью атласа при 2D-рисовании, помогая отделить соседние элементы при фильтрации. Это не изменение пикселей или генерация mipmap-отступов. В текущей реализации AtlasTexture использует это свойство и в DrawRectRegion, независимо от переданного clipUV. Визуальное качество краёв данным прогоном не проверено.
MarginСвойство
public Rect2 Margin { get; set; }Дополнительный логический отступ, по умолчанию нулевой Rect2. Position сдвигает место рисования содержимого; Size добавляет общий размер холста к ненулевым осям Region. Это не четыре независимые толщины сторон. Например, Region 4×4 и Margin.Size 3×4 дают логический размер 7×8. GetImage возвращает вырезку без этих полей. Margin не изменяет пиксели источника и не создаёт защитные края для mipmaps.
RegionСвойство
public Rect2 Region { get; set; }Область в координатах исходной текстуры, не UV 0…1. По умолчанию Rect2 с нулевым размером: соответствующая ось берёт размер источника. Для ненулевой оси логический размер равен floor(Region.Size) плюс Margin.Size; при нулевой оси используется размер источника без добавки Margin.Size. Свойство сохраняет исходные дробные значения, но размеры внутренней области округляются вниз. Для предсказуемой нарезки используйте целочисленные границы внутри источника.
Методы8
GetAtlasTexture2D
public Texture2D GetAtlas();Возвращает AtlasTexture.Atlas.
Texture2DТекущее значение Atlas. Ссылка на текстуру общая, не копия; может быть null.
GetMarginRect2
public Rect2 GetMargin();Возвращает AtlasTexture.Margin.
Rect2Текущее значение Margin.
GetRegionRect2
public Rect2 GetRegion();Возвращает AtlasTexture.Region.
Rect2Текущее значение Region.
HasFilterClipbool
public bool HasFilterClip();Возвращает AtlasTexture.FilterClip.
boolТекущее значение FilterClip.
SetAtlasvoid
public void SetAtlas(Texture2D atlas);Задаёт AtlasTexture.Atlas.
| Имя | Тип | По умолчанию |
|---|---|---|
atlas | Texture2D | — |
atlasОбщий Texture2D или null; не создавайте ссылки на себя и циклы.
SetFilterClipvoid
public void SetFilterClip(bool enable);Задаёт AtlasTexture.FilterClip.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableОграничивать выборку областью атласа при 2D-рисовании.
SetMarginvoid
public void SetMargin(Rect2 margin);Задаёт AtlasTexture.Margin.
| Имя | Тип | По умолчанию |
|---|---|---|
margin | Rect2 | — |
marginPosition — смещение содержимого; Size — добавка к логическому холсту, без изменения пикселей.
SetRegionvoid
public void SetRegion(Rect2 region);Задаёт AtlasTexture.Region.
| Имя | Тип | По умолчанию |
|---|---|---|
region | Rect2 | — |
regionОбласть источника в координатах текстуры; нулевая ось использует размер источника.