reckfellENGINE

TileSetAtlasSource

Предоставляет 2D-текстуру атласа как набор плиток для ресурса TileSet.

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

Предоставляет 2D-текстуру атласа как набор плиток для ресурса TileSet.

Атлас представляет собой сетку из плитки, установленную на текстуре. TileSetAtlasSource.CreateTile. Затем эти плитки индексируются по их координатам в сети. Каждая плитка также может иметь размер в координатах сетки, что делает ее более или менее клетками в атласе. Альтернативная версия плитки может быть создана с использованием TileSetAtlasSource.CreateAlternativeTile, которые затем индексируются с помощью альтернативного идентификатора. Каждая альтернативная плитка имеет набор свойств, определяемых источником TileSet Эти свойства хранятся в а/ TileData объект, который может быть получен и изменен с использованием TileSetAtlasSource.GetTileData. Как TileData свойства хранятся непосредственно в TileSetAtlasSource их свойства могут быть также установлены с использованием TileSetAtlasSource.set("<coords_x>:<coords_y>/<alternative_id>/<tile_data_property>").

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

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

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

Свойства5

MarginsСвойство
# Margins
C#
public Vector2I Margins { get; set; }

Поля в пикселях для смещения начала сетки в текстуре.

SeparationСвойство
# Separation
C#
public Vector2I Separation { get; set; }

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

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

Текстура атласа.

TextureRegionSizeСвойство
# TextureRegionSize
C#
public Vector2I TextureRegionSize { get; set; }

Размер базового региона изображения в пикселях атласа. Отдельный тайл может занимать несколько таких регионов. Настройка не заменяет TileSet.TileSize и не создаёт коллизию. Координаты CreateTile/SetCell задаются в сетке атласа, не в пикселях этого размера.

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

Если true, создаёт внутреннюю текстуру с дополнительным пикселем вокруг каждой плитки. Texture Подкладка избегает обычного артефакта, где между плитками появляются линии. Отключение этой настройки может привести к незначительному повышению эффективности, поскольку для создания внутренней текстуры требуется как память, так и время обработки, когда TileSetAtlasSource Ресурсы модифицируются.

Методы41

ClearTilesOutsideTexturevoid
# ClearTilesOutsideTexture
C#
public void ClearTilesOutsideTexture();

Удаляет все тайлы, которые не вписываются в доступную область текстуры. Этот метод перебирает все тайлы источника, поэтому рекомендуется заранее использовать TileSetAtlasSource.HasTilesOutsideTexture.

CreateAlternativeTileint
# CreateAlternativeTile
C#
public int CreateAlternativeTile(Vector2I atlasCoords, int alternativeIdOverride = -1);

Создает альтернативный тайл для тайла с координатами atlas_coords. Если alternative_id_override равен -1, назначает автоматически сгенерированный уникальный ID, в противном случае использует указанный ID. Возвращает новый идентификатор альтернативы или -1, если альтернатива не может быть создана с предоставленным alternative_id_override.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
alternativeIdOverrideint-1
Возвращает int
CreateTilevoid
# CreateTile
C#
public void CreateTile(Vector2I atlasCoords, Vector2I? size = default);

Создает новый тайл с координатами atlas_coords с заданным size.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
sizeVector2I?default
size

Если параметр не имеет значения, то значение по умолчанию: new Vector2I(1, 1).

GetAtlasGridSizeVector2I
# GetAtlasGridSize
C#
public Vector2I GetAtlasGridSize();

Возвращает размер сетки атласа, который зависит от того, сколько плиток может поместиться в текстуре. Таким образом, он зависит от размера TileSetAtlasSource.Texture, TileSetAtlasSource.Margins атласа и TileSetAtlasSource.TextureRegionSize плиток.

Возвращает Vector2I
GetMarginsVector2I
# GetMargins
C#
public Vector2I GetMargins();
Возвращает Vector2I
GetNextAlternativeTileIdint
# GetNextAlternativeTileId
C#
public int GetNextAlternativeTileId(Vector2I atlasCoords);

Возвращает альтернативный идентификатор, который вернет следующий вызов TileSetAtlasSource.CreateAlternativeTile.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
Возвращает int
GetRuntimeTextureTexture2D
# GetRuntimeTexture
C#
public Texture2D GetRuntimeTexture();

Если TileSetAtlasSource.UseTexturePadding равно false, возвращает TileSetAtlasSource.Texture. В противном случае возвращает внутренний объект ImageTexture, созданный с учетом отступов.

Возвращает Texture2D
GetRuntimeTileTextureRegionRect2I
# GetRuntimeTileTextureRegion
C#
public Rect2I GetRuntimeTileTextureRegion(Vector2I atlasCoords, int frame);

Возвращает область тайла с координатами atlas_coords для заданного frame внутри текстуры, возвращаемой TileSetAtlasSource.GetRuntimeTexture. Примечание: Если TileSetAtlasSource.UseTexturePadding равен false, возвращает то же, что и TileSetAtlasSource.GetTileTextureRegion.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
frameint—
Возвращает Rect2I
GetSeparationVector2I
# GetSeparation
C#
public Vector2I GetSeparation();
Возвращает Vector2I
GetTextureTexture2D
# GetTexture
C#
public Texture2D GetTexture();
Возвращает Texture2D
GetTextureRegionSizeVector2I
# GetTextureRegionSize
C#
public Vector2I GetTextureRegionSize();
Возвращает Vector2I
GetTileAnimationColumnsint
# GetTileAnimationColumns
C#
public int GetTileAnimationColumns(Vector2I atlasCoords);

Возвращает количество столбцов, которые тайл в atlas_coords имеет в своем макете анимации.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
Возвращает int
GetTileAnimationFrameDurationfloat
# GetTileAnimationFrameDuration
C#
public float GetTileAnimationFrameDuration(Vector2I atlasCoords, int frameIndex);

Возвращает длительность кадра анимации кадра frame_index для тайла с координатами atlas_coords.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
frameIndexint—
Возвращает float
GetTileAnimationFramesCountint
# GetTileAnimationFramesCount
C#
public int GetTileAnimationFramesCount(Vector2I atlasCoords);

Возвращает количество кадров анимации, которые имеет тайл с координатами atlas_coords.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
Возвращает int
GetTileAnimationModeTileSetAtlasSource.TileAnimationMode
# GetTileAnimationMode
C#
public TileSetAtlasSource.TileAnimationMode GetTileAnimationMode(Vector2I atlasCoords);

Возвращает режим анимации тайла по координатам atlas_coords. См. также TileSetAtlasSource.SetTileAnimationMode.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
Возвращает TileSetAtlasSource.TileAnimationMode
GetTileAnimationSeparationVector2I
# GetTileAnimationSeparation
C#
public Vector2I GetTileAnimationSeparation(Vector2I atlasCoords);

Возвращает расстояние (как в сетке атласа) между кадрами анимированного тайла по координатам atlas_coords.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
Возвращает Vector2I
GetTileAnimationSpeedfloat
# GetTileAnimationSpeed
C#
public float GetTileAnimationSpeed(Vector2I atlasCoords);

Возвращает скорость анимации тайла по координатам atlas_coords.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
Возвращает float
GetTileAnimationTotalDurationfloat
# GetTileAnimationTotalDuration
C#
public float GetTileAnimationTotalDuration(Vector2I atlasCoords);

Возвращает общую длительность (сумма суммы) всех кадров анимации тайла по координатам atlas_coords. Это значение необходимо разделить на скорость анимации, чтобы получить фактическую длительность цикла анимации.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
Возвращает float
GetTileAtCoordsVector2I
# GetTileAtCoords
C#
public Vector2I GetTileAtCoords(Vector2I atlasCoords);

Если есть тайл, покрывающий координаты atlas_coords, возвращает верхние левые координаты тайла (следовательно, его идентификатор координат). В противном случае возвращает Vector2i(-1, -1).

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
Возвращает Vector2I
GetTileDataTileData
# GetTileData
C#
public TileData GetTileData(Vector2I atlasCoords, int alternativeTile);

Возвращает объект TileData для указанных координат атласа и альтернативного идентификатора.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
alternativeTileint—
Возвращает TileData
GetTileSizeInAtlasVector2I
# GetTileSizeInAtlas
C#
public Vector2I GetTileSizeInAtlas(Vector2I atlasCoords);

Возвращает размер тайла (в системе координат сетки) в координатах atlas_coords.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
Возвращает Vector2I
GetTileTextureRegionRect2I
# GetTileTextureRegion
C#
public Rect2I GetTileTextureRegion(Vector2I atlasCoords, int frame = 0);

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

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
frameint0
Возвращает Rect2I
GetTilesToBeRemovedOnChangeVector2[]
# GetTilesToBeRemovedOnChange
C#
public Vector2[] GetTilesToBeRemovedOnChange(Texture2D texture, Vector2I margins, Vector2I separation, Vector2I textureRegionSize);

Возвращает набор координат плиток, которые автоматически удаляются при изменении одного или нескольких из этих свойств: TileSetAtlasSource.Texture, TileSetAtlasSource.Margins, TileSetAtlasSource.Separation или TileSetAtlasSource.TextureRegionSize. Это может быть использовано для устранения изменений, которые привели бы к потере данных о плитках.

Параметры
ИмяТипПо умолчанию
textureTexture2D—
marginsVector2I—
separationVector2I—
textureRegionSizeVector2I—
Возвращает Vector2[]
GetUseTexturePaddingbool
# GetUseTexturePadding
C#
public bool GetUseTexturePadding();
Возвращает bool
HasRoomForTilebool
# HasRoomForTile
C#
public bool HasRoomForTile(Vector2I atlasCoords, Vector2I size, int animationColumns, Vector2I animationSeparation, int framesCount, Vector2I? ignoredTile = default);

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

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
sizeVector2I—
animationColumnsint—
animationSeparationVector2I—
framesCountint—
ignoredTileVector2I?default
ignoredTile

Если параметр не имеет значения, то значение по умолчанию: new Vector2I(-1, -1).

Возвращает bool
HasTilesOutsideTexturebool
# HasTilesOutsideTexture
C#
public bool HasTilesOutsideTexture();

Проверяет, есть ли в источнике тайлы, которые не попадают в область текстуры (частично или полностью).

Возвращает bool
MoveTileInAtlasvoid
# MoveTileInAtlas
C#
public void MoveTileInAtlas(Vector2I atlasCoords, Vector2I? newAtlasCoords = default, Vector2I? newSize = default);

Перемещает тайл и его альтернативы из координат atlas_coords в координаты new_atlas_coords с размером new_size. Функция завершится ошибкой, если в указанной области уже присутствует тайл. Если new_atlas_coords равен Vector2i(-1, -1), сохраняются текущие координаты тайла. Если new_size равен Vector2i(-1, -1), сохраняется текущий размер тайла. Чтобы избежать ошибки, сначала проверьте возможность перемещения с помощью TileSetAtlasSource.HasRoomForTile.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
newAtlasCoordsVector2I?default
newSizeVector2I?default
newAtlasCoords

Если параметр не имеет значения, то значение по умолчанию: new Vector2I(-1, -1).

newSize

Если параметр не имеет значения, то значение по умолчанию: new Vector2I(-1, -1).

RemoveAlternativeTilevoid
# RemoveAlternativeTile
C#
public void RemoveAlternativeTile(Vector2I atlasCoords, int alternativeTile);

Удалить альтернативу тайла с альтернативным идентификатором alternative_tile. Вызов этой функции с alternative_tile, равным 0, завершится ошибкой, так как базовая альтернатива тайла не может быть удалена.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
alternativeTileint—
RemoveTilevoid
# RemoveTile
C#
public void RemoveTile(Vector2I atlasCoords);

Удалить тайл и его альтернативу по координатам atlas_coords.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
SetAlternativeTileIdvoid
# SetAlternativeTileId
C#
public void SetAlternativeTileId(Vector2I atlasCoords, int alternativeTile, int newId);

Измените альтернативный идентификатор тайла с alternative_tile на new_id. Вызов этой функции с new_id равным 0 завершится ошибкой, так как базовую альтернативу тайла нельзя переместить.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
alternativeTileint—
newIdint—
SetMarginsvoid
# SetMargins
C#
public void SetMargins(Vector2I margins);
Параметры
ИмяТипПо умолчанию
marginsVector2I—
SetSeparationvoid
# SetSeparation
C#
public void SetSeparation(Vector2I separation);
Параметры
ИмяТипПо умолчанию
separationVector2I—
SetTexturevoid
# SetTexture
C#
public void SetTexture(Texture2D texture);
Параметры
ИмяТипПо умолчанию
textureTexture2D—
SetTextureRegionSizevoid
# SetTextureRegionSize
C#
public void SetTextureRegionSize(Vector2I textureRegionSize);
Параметры
ИмяТипПо умолчанию
textureRegionSizeVector2I—
SetTileAnimationColumnsvoid
# SetTileAnimationColumns
C#
public void SetTileAnimationColumns(Vector2I atlasCoords, int frameColumns);

Устанавливает количество столбцов в макете анимации тайла по координатам atlas_coords. Если установлено значение 0, то различные кадры анимации располагаются в атласе как одна горизонтальная линия.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
frameColumnsint—
SetTileAnimationFrameDurationvoid
# SetTileAnimationFrameDuration
C#
public void SetTileAnimationFrameDuration(Vector2I atlasCoords, int frameIndex, float duration);

Устанавливает кадр анимации duration кадра frame_index для тайла по координатам atlas_coords.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
frameIndexint—
durationfloat—
SetTileAnimationFramesCountvoid
# SetTileAnimationFramesCount
C#
public void SetTileAnimationFramesCount(Vector2I atlasCoords, int framesCount);

Устанавливает количество кадров анимации для тайла по координатам atlas_coords.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
framesCountint—
SetTileAnimationModevoid
# SetTileAnimationMode
C#
public void SetTileAnimationMode(Vector2I atlasCoords, TileSetAtlasSource.TileAnimationMode mode);

Устанавливает режим анимации тайла в atlas_coords на mode. См. также TileSetAtlasSource.GetTileAnimationMode.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
modeTileSetAtlasSource.TileAnimationMode—
SetTileAnimationSeparationvoid
# SetTileAnimationSeparation
C#
public void SetTileAnimationSeparation(Vector2I atlasCoords, Vector2I separation);

Устанавливает отступ (в ячейках сетки) между каждым тайлом в макете анимации тайла по координатам atlas_coords.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
separationVector2I—
SetTileAnimationSpeedvoid
# SetTileAnimationSpeed
C#
public void SetTileAnimationSpeed(Vector2I atlasCoords, float speed);

Устанавливает скорость анимации тайла по координатам atlas_coords.

Параметры
ИмяТипПо умолчанию
atlasCoordsVector2I—
speedfloat—
SetUseTexturePaddingvoid
# SetUseTexturePadding
C#
public void SetUseTexturePadding(bool useTexturePadding);
Параметры
ИмяТипПо умолчанию
useTexturePaddingbool—

Поля и константы3

TransformFlipHПоле
# TransformFlipH
C#
public const long TransformFlipH = 4096;

Представляет флаг горизонтального переворота ячейки. Следует использовать напрямую с TileMapLayer для переворота размещенных тайлов путем изменения их альтернативных идентификаторов (ID).

Примечание: Эти преобразования можно объединить для создания эквивалента поворотов на 0, 90, 180 и 270 градусов, как показано ниже:

Текст
enum TileTransform {
    ROTATE_0 = 0,
    ROTATE_90 = TileSetAtlasSource.TRANSFORM_TRANSPOSE | TileSetAtlasSource.TRANSFORM_FLIP_H,
    ROTATE_180 = TileSetAtlasSource.TRANSFORM_FLIP_H | TileSetAtlasSource.TRANSFORM_FLIP_V,
    ROTATE_270 = TileSetAtlasSource.TRANSFORM_TRANSPOSE | TileSetAtlasSource.TRANSFORM_FLIP_V,
}
TransformFlipVПоле
# TransformFlipV
C#
public const long TransformFlipV = 8192;

Представляет флаг вертикального переворота ячейки. См. TileSetAtlasSource.TransformFlipH для использования.

TransformTransposeПоле
# TransformTranspose
C#
public const long TransformTranspose = 16384;

Представляет транспонированный флаг ячейки. См. TileSetAtlasSource.TransformFlipH для использования.

TileSetAtlasSource.TileAnimationMode

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

Анимация плиток запускается одновременно и выглядит идентично.

Max = 2

Представляет размер перечисления TileSetAtlasSource.TileAnimationMode.

RandomStartTimes = 1

Анимация плиток запускается в случайные моменты времени и выглядит разнообразно.

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

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

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

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