Sprite2D
Универсальный узел спрайта.
Универсальный узел спрайта.
Узел, отображающий 2D-текстуру. Отображаемая текстура может быть областью из более крупной текстуры атласа или кадром из анимации спрайт-листа.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
Sprite2DКонструктор
public Sprite2D();Свойства12
CenteredСвойство
public bool Centered { get; set; }Если true, текстура центрирована.
Примечание: В играх с пиксельной эстетикой текстуры могут выглядеть деформированными при центрировании. Это вызвано их положением между пикселями. Чтобы предотвратить это, установите это свойство на false или рассмотрите возможность включения ProjectSettings.rendering/2d/snap/snap_2d_vertices_to_pixel и ProjectSettings.rendering/2d/snap/snap_2d_transforms_to_pixel.
FlipHСвойство
public bool FlipH { get; set; }Если true, текстура отражена по горизонтали.
FlipVСвойство
public bool FlipV { get; set; }Если true, текстура отражена по вертикали.
FrameСвойство
public int Frame { get; set; }Текущий кадр для отображения из таблицы спрайтов. Sprite2D.Hframes или Sprite2D.Vframes должны быть больше 1. Это свойство автоматически корректируется, когда Sprite2D.Hframes или Sprite2D.Vframes изменяются, чтобы продолжать указывать на тот же визуальный кадр (тот же столбец и строку). Если это невозможно, это значение сбрасывается до 0.
FrameCoordsСвойство
public Vector2I FrameCoords { get; set; }Координаты кадра для отображения из таблицы спрайтов. Это псевдоним для свойства Sprite2D.Frame. Sprite2D.Hframes или Sprite2D.Vframes должны быть больше 1.
HframesСвойство
public int Hframes { get; set; }Количество столбцов в таблице спрайтов. При изменении этого свойства Sprite2D.Frame корректируется так, чтобы сохранялась та же визуальная рамка (та же строка и столбец). Если это невозможно, Sprite2D.Frame сбрасывается до 0.
OffsetСвойство
public Vector2 Offset { get; set; }Смещение отрисовки текстуры.
Примечание: При увеличении Sprite2D.Offset.y в Sprite2D спрайт перемещается вниз на экране (т. е. +Y — вниз).
RegionEnabledСвойство
public bool RegionEnabled { get; set; }Включает выборку прямоугольника RegionRect вместо всей текстуры. RegionRect задаётся в пикселях исходной текстуры. В проверенном шейдерном пути UV уже включает регион; повторно применять его смещение не нужно.
RegionFilterClipEnabledСвойство
public bool RegionFilterClipEnabled { get; set; }Если true, область за пределами Sprite2D.RegionRect обрезается, чтобы избежать просачивания окружающих пикселей текстуры. Sprite2D.RegionEnabled должно быть true.
RegionRectСвойство
public Rect2 RegionRect { get; set; }Прямоугольник источника в пикселях Texture, используемый при RegionEnabled. Это не нормализованный REGION_RECT внутри шейдера и не размер спрайта после Scale. Hframes/Vframes дополнительно делят выбранный прямоугольник на кадры.
VframesСвойство
public int Vframes { get; set; }Количество строк в таблице спрайтов. При изменении этого свойства Sprite2D.Frame корректируется так, чтобы сохранялась та же визуальная рамка (та же строка и столбец). Если это невозможно, Sprite2D.Frame сбрасывается до 0.
Методы26
GetFrameint
public int GetFrame();intGetFrameCoordsVector2I
public Vector2I GetFrameCoords();Vector2IGetHframesint
public int GetHframes();intGetOffsetVector2
public Vector2 GetOffset();Vector2GetRectRect2
public Rect2 GetRect();Возвращает Rect2, представляющий границу Sprite2D в локальных координатах.
Пример: Определить, был ли нажат Sprite2D:
public override void _Input(InputEvent @event)
{
if (@event is InputEventMouseButton inputEventMouse)
{
if (inputEventMouse.Pressed && inputEventMouse.ButtonIndex == MouseButton.Left)
{
if (GetRect().HasPoint(ToLocal(inputEventMouse.Position)))
{
ReckfellApi.Print("A click!");
}
}
}
}Rect2GetRegionRectRect2
public Rect2 GetRegionRect();Прямоугольник источника в пикселях Texture, используемый при RegionEnabled. Это не нормализованный REGION_RECT внутри шейдера и не размер спрайта после Scale. Hframes/Vframes дополнительно делят выбранный прямоугольник на кадры.
Rect2Сохранённый Rect2 в пикселях текстуры, даже когда RegionEnabled выключен.
GetTextureTexture2D
public Texture2D GetTexture();Texture2DGetVframesint
public int GetVframes();intIsCenteredbool
public bool IsCentered();boolIsFlippedHbool
public bool IsFlippedH();boolIsFlippedVbool
public bool IsFlippedV();boolIsPixelOpaquebool
public bool IsPixelOpaque(Vector2 pos);Возвращает true, если пиксель в заданной позиции непрозрачен, false в противном случае. Также возвращает false, если заданная позиция выходит за пределы допустимых значений или Sprite2D.Texture этого спрайта равна null. pos — локальные координаты.
| Имя | Тип | По умолчанию |
|---|---|---|
pos | Vector2 | — |
boolIsRegionEnabledbool
public bool IsRegionEnabled();Включает выборку прямоугольника RegionRect вместо всей текстуры. RegionRect задаётся в пикселях исходной текстуры. В проверенном шейдерном пути UV уже включает регион; повторно применять его смещение не нужно.
booltrue, если выбор источника использует RegionRect.
IsRegionFilterClipEnabledbool
public bool IsRegionFilterClipEnabled();boolSetCenteredvoid
public void SetCentered(bool centered);| Имя | Тип | По умолчанию |
|---|---|---|
centered | bool | — |
SetFlipHvoid
public void SetFlipH(bool flipH);| Имя | Тип | По умолчанию |
|---|---|---|
flipH | bool | — |
SetFlipVvoid
public void SetFlipV(bool flipV);| Имя | Тип | По умолчанию |
|---|---|---|
flipV | bool | — |
SetFramevoid
public void SetFrame(int frame);| Имя | Тип | По умолчанию |
|---|---|---|
frame | int | — |
SetFrameCoordsvoid
public void SetFrameCoords(Vector2I coords);| Имя | Тип | По умолчанию |
|---|---|---|
coords | Vector2I | — |
SetHframesvoid
public void SetHframes(int hframes);| Имя | Тип | По умолчанию |
|---|---|---|
hframes | int | — |
SetOffsetvoid
public void SetOffset(Vector2 offset);| Имя | Тип | По умолчанию |
|---|---|---|
offset | Vector2 | — |
SetRegionEnabledvoid
public void SetRegionEnabled(bool enabled);Включает выборку прямоугольника RegionRect вместо всей текстуры. RegionRect задаётся в пикселях исходной текстуры. В проверенном шейдерном пути UV уже включает регион; повторно применять его смещение не нужно.
| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
enabledtrue — использовать RegionRect.
SetRegionFilterClipEnabledvoid
public void SetRegionFilterClipEnabled(bool enabled);| Имя | Тип | По умолчанию |
|---|---|---|
enabled | bool | — |
SetRegionRectvoid
public void SetRegionRect(Rect2 rect);Прямоугольник источника в пикселях Texture, используемый при RegionEnabled. Это не нормализованный REGION_RECT внутри шейдера и не размер спрайта после Scale. Hframes/Vframes дополнительно делят выбранный прямоугольник на кадры.
| Имя | Тип | По умолчанию |
|---|---|---|
rect | Rect2 | — |
rectСмещение и размер в пикселях исходной текстуры, до масштабирования спрайта.
SetTexturevoid
public void SetTexture(Texture2D texture);| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
SetVframesvoid
public void SetVframes(int vframes);| Имя | Тип | По умолчанию |
|---|---|---|
vframes | int | — |
Сигналы и события2
FrameChangedСобытие
public event Action FrameChanged;Выдается при изменении Sprite2D.Frame.
TextureChangedСобытие
public event Action TextureChanged;Выдается при изменении Sprite2D.Texture.