TileSetAtlasSource
Предоставляет 2D-текстуру атласа как набор плиток для ресурса TileSet.
Предоставляет 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Конструктор
public TileSetAtlasSource();Свойства5
MarginsСвойство
public Vector2I Margins { get; set; }Поля в пикселях для смещения начала сетки в текстуре.
SeparationСвойство
public Vector2I Separation { get; set; }Разделение в пикселях между каждой областью текстуры тайла сетки.
TextureСвойство
public Texture2D Texture { get; set; }Текстура атласа.
TextureRegionSizeСвойство
public Vector2I TextureRegionSize { get; set; }Размер базового региона изображения в пикселях атласа. Отдельный тайл может занимать несколько таких регионов. Настройка не заменяет TileSet.TileSize и не создаёт коллизию. Координаты CreateTile/SetCell задаются в сетке атласа, не в пикселях этого размера.
UseTexturePaddingСвойство
public bool UseTexturePadding { get; set; }Если true, создаёт внутреннюю текстуру с дополнительным пикселем вокруг каждой плитки. Texture Подкладка избегает обычного артефакта, где между плитками появляются линии.
Отключение этой настройки может привести к незначительному повышению эффективности, поскольку для создания внутренней текстуры требуется как память, так и время обработки, когда TileSetAtlasSource Ресурсы модифицируются.
Методы41
ClearTilesOutsideTexturevoid
public void ClearTilesOutsideTexture();Удаляет все тайлы, которые не вписываются в доступную область текстуры. Этот метод перебирает все тайлы источника, поэтому рекомендуется заранее использовать TileSetAtlasSource.HasTilesOutsideTexture.
CreateAlternativeTileint
public int CreateAlternativeTile(Vector2I atlasCoords, int alternativeIdOverride = -1);Создает альтернативный тайл для тайла с координатами atlas_coords. Если alternative_id_override равен -1, назначает автоматически сгенерированный уникальный ID, в противном случае использует указанный ID.
Возвращает новый идентификатор альтернативы или -1, если альтернатива не может быть создана с предоставленным alternative_id_override.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
alternativeIdOverride | int | -1 |
intCreateTilevoid
public void CreateTile(Vector2I atlasCoords, Vector2I? size = default);Создает новый тайл с координатами atlas_coords с заданным size.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
size | Vector2I? | default |
sizeЕсли параметр не имеет значения, то значение по умолчанию: new Vector2I(1, 1).
GetAtlasGridSizeVector2I
public Vector2I GetAtlasGridSize();Возвращает размер сетки атласа, который зависит от того, сколько плиток может поместиться в текстуре. Таким образом, он зависит от размера TileSetAtlasSource.Texture, TileSetAtlasSource.Margins атласа и TileSetAtlasSource.TextureRegionSize плиток.
Vector2IGetMarginsVector2I
public Vector2I GetMargins();Vector2IGetNextAlternativeTileIdint
public int GetNextAlternativeTileId(Vector2I atlasCoords);Возвращает альтернативный идентификатор, который вернет следующий вызов TileSetAtlasSource.CreateAlternativeTile.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
intGetRuntimeTextureTexture2D
public Texture2D GetRuntimeTexture();Если TileSetAtlasSource.UseTexturePadding равно false, возвращает TileSetAtlasSource.Texture. В противном случае возвращает внутренний объект ImageTexture, созданный с учетом отступов.
Texture2DGetRuntimeTileTextureRegionRect2I
public Rect2I GetRuntimeTileTextureRegion(Vector2I atlasCoords, int frame);Возвращает область тайла с координатами atlas_coords для заданного frame внутри текстуры, возвращаемой TileSetAtlasSource.GetRuntimeTexture.
Примечание: Если TileSetAtlasSource.UseTexturePadding равен false, возвращает то же, что и TileSetAtlasSource.GetTileTextureRegion.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
frame | int | — |
Rect2IGetSeparationVector2I
public Vector2I GetSeparation();Vector2IGetTextureTexture2D
public Texture2D GetTexture();Texture2DGetTextureRegionSizeVector2I
public Vector2I GetTextureRegionSize();Vector2IGetTileAnimationColumnsint
public int GetTileAnimationColumns(Vector2I atlasCoords);Возвращает количество столбцов, которые тайл в atlas_coords имеет в своем макете анимации.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
intGetTileAnimationFrameDurationfloat
public float GetTileAnimationFrameDuration(Vector2I atlasCoords, int frameIndex);Возвращает длительность кадра анимации кадра frame_index для тайла с координатами atlas_coords.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
frameIndex | int | — |
floatGetTileAnimationFramesCountint
public int GetTileAnimationFramesCount(Vector2I atlasCoords);Возвращает количество кадров анимации, которые имеет тайл с координатами atlas_coords.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
intGetTileAnimationModeTileSetAtlasSource.TileAnimationMode
public TileSetAtlasSource.TileAnimationMode GetTileAnimationMode(Vector2I atlasCoords);Возвращает режим анимации тайла по координатам atlas_coords. См. также TileSetAtlasSource.SetTileAnimationMode.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
TileSetAtlasSource.TileAnimationModeGetTileAnimationSeparationVector2I
public Vector2I GetTileAnimationSeparation(Vector2I atlasCoords);Возвращает расстояние (как в сетке атласа) между кадрами анимированного тайла по координатам atlas_coords.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
Vector2IGetTileAnimationSpeedfloat
public float GetTileAnimationSpeed(Vector2I atlasCoords);Возвращает скорость анимации тайла по координатам atlas_coords.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
floatGetTileAnimationTotalDurationfloat
public float GetTileAnimationTotalDuration(Vector2I atlasCoords);Возвращает общую длительность (сумма суммы) всех кадров анимации тайла по координатам atlas_coords. Это значение необходимо разделить на скорость анимации, чтобы получить фактическую длительность цикла анимации.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
floatGetTileAtCoordsVector2I
public Vector2I GetTileAtCoords(Vector2I atlasCoords);Если есть тайл, покрывающий координаты atlas_coords, возвращает верхние левые координаты тайла (следовательно, его идентификатор координат). В противном случае возвращает Vector2i(-1, -1).
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
Vector2IGetTileDataTileData
public TileData GetTileData(Vector2I atlasCoords, int alternativeTile);Возвращает объект TileData для указанных координат атласа и альтернативного идентификатора.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
alternativeTile | int | — |
TileDataGetTileSizeInAtlasVector2I
public Vector2I GetTileSizeInAtlas(Vector2I atlasCoords);Возвращает размер тайла (в системе координат сетки) в координатах atlas_coords.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
Vector2IGetTileTextureRegionRect2I
public Rect2I GetTileTextureRegion(Vector2I atlasCoords, int frame = 0);Возвращает текстурную область тайла в текстуре атласа. Для анимированных тайлов аргумент frame может быть предоставлен для различных кадров анимации.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
frame | int | 0 |
Rect2IGetTilesToBeRemovedOnChangeVector2[]
public Vector2[] GetTilesToBeRemovedOnChange(Texture2D texture, Vector2I margins, Vector2I separation, Vector2I textureRegionSize);Возвращает набор координат плиток, которые автоматически удаляются при изменении одного или нескольких из этих свойств: TileSetAtlasSource.Texture, TileSetAtlasSource.Margins, TileSetAtlasSource.Separation или TileSetAtlasSource.TextureRegionSize. Это может быть использовано для устранения изменений, которые привели бы к потере данных о плитках.
| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
margins | Vector2I | — |
separation | Vector2I | — |
textureRegionSize | Vector2I | — |
Vector2[]GetUseTexturePaddingbool
public bool GetUseTexturePadding();boolHasRoomForTilebool
public bool HasRoomForTile(Vector2I atlasCoords, Vector2I size, int animationColumns, Vector2I animationSeparation, int framesCount, Vector2I? ignoredTile = default);Возвращается ли в атласе достаточно места для создания/модификации плитки с указанными свойствами. ignored_tile Предусмотрено, действуйте так же, как данный плитка не присутствовала в атласе. Это может быть использовано, когда вы хотите изменить свойства плитки.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
size | Vector2I | — |
animationColumns | int | — |
animationSeparation | Vector2I | — |
framesCount | int | — |
ignoredTile | Vector2I? | default |
ignoredTileЕсли параметр не имеет значения, то значение по умолчанию: new Vector2I(-1, -1).
boolHasTilesOutsideTexturebool
public bool HasTilesOutsideTexture();Проверяет, есть ли в источнике тайлы, которые не попадают в область текстуры (частично или полностью).
boolMoveTileInAtlasvoid
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.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
newAtlasCoords | Vector2I? | default |
newSize | Vector2I? | default |
newAtlasCoordsЕсли параметр не имеет значения, то значение по умолчанию: new Vector2I(-1, -1).
newSizeЕсли параметр не имеет значения, то значение по умолчанию: new Vector2I(-1, -1).
RemoveAlternativeTilevoid
public void RemoveAlternativeTile(Vector2I atlasCoords, int alternativeTile);Удалить альтернативу тайла с альтернативным идентификатором alternative_tile.
Вызов этой функции с alternative_tile, равным 0, завершится ошибкой, так как базовая альтернатива тайла не может быть удалена.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
alternativeTile | int | — |
RemoveTilevoid
public void RemoveTile(Vector2I atlasCoords);Удалить тайл и его альтернативу по координатам atlas_coords.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
SetAlternativeTileIdvoid
public void SetAlternativeTileId(Vector2I atlasCoords, int alternativeTile, int newId);Измените альтернативный идентификатор тайла с alternative_tile на new_id.
Вызов этой функции с new_id равным 0 завершится ошибкой, так как базовую альтернативу тайла нельзя переместить.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
alternativeTile | int | — |
newId | int | — |
SetMarginsvoid
public void SetMargins(Vector2I margins);| Имя | Тип | По умолчанию |
|---|---|---|
margins | Vector2I | — |
SetSeparationvoid
public void SetSeparation(Vector2I separation);| Имя | Тип | По умолчанию |
|---|---|---|
separation | Vector2I | — |
SetTexturevoid
public void SetTexture(Texture2D texture);| Имя | Тип | По умолчанию |
|---|---|---|
texture | Texture2D | — |
SetTextureRegionSizevoid
public void SetTextureRegionSize(Vector2I textureRegionSize);| Имя | Тип | По умолчанию |
|---|---|---|
textureRegionSize | Vector2I | — |
SetTileAnimationColumnsvoid
public void SetTileAnimationColumns(Vector2I atlasCoords, int frameColumns);Устанавливает количество столбцов в макете анимации тайла по координатам atlas_coords. Если установлено значение 0, то различные кадры анимации располагаются в атласе как одна горизонтальная линия.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
frameColumns | int | — |
SetTileAnimationFrameDurationvoid
public void SetTileAnimationFrameDuration(Vector2I atlasCoords, int frameIndex, float duration);Устанавливает кадр анимации duration кадра frame_index для тайла по координатам atlas_coords.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
frameIndex | int | — |
duration | float | — |
SetTileAnimationFramesCountvoid
public void SetTileAnimationFramesCount(Vector2I atlasCoords, int framesCount);Устанавливает количество кадров анимации для тайла по координатам atlas_coords.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
framesCount | int | — |
SetTileAnimationModevoid
public void SetTileAnimationMode(Vector2I atlasCoords, TileSetAtlasSource.TileAnimationMode mode);Устанавливает режим анимации тайла в atlas_coords на mode. См. также TileSetAtlasSource.GetTileAnimationMode.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
mode | TileSetAtlasSource.TileAnimationMode | — |
SetTileAnimationSeparationvoid
public void SetTileAnimationSeparation(Vector2I atlasCoords, Vector2I separation);Устанавливает отступ (в ячейках сетки) между каждым тайлом в макете анимации тайла по координатам atlas_coords.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
separation | Vector2I | — |
SetTileAnimationSpeedvoid
public void SetTileAnimationSpeed(Vector2I atlasCoords, float speed);Устанавливает скорость анимации тайла по координатам atlas_coords.
| Имя | Тип | По умолчанию |
|---|---|---|
atlasCoords | Vector2I | — |
speed | float | — |
SetUseTexturePaddingvoid
public void SetUseTexturePadding(bool useTexturePadding);| Имя | Тип | По умолчанию |
|---|---|---|
useTexturePadding | bool | — |
Поля и константы3
TransformFlipHПоле
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Поле
public const long TransformFlipV = 8192;Представляет флаг вертикального переворота ячейки. См. TileSetAtlasSource.TransformFlipH для использования.
TransformTransposeПоле
public const long TransformTranspose = 16384;Представляет транспонированный флаг ячейки. См. TileSetAtlasSource.TransformFlipH для использования.
TileSetAtlasSource.TileAnimationMode
| Значение | Описание |
|---|---|
Default = 0 | Анимация плиток запускается одновременно и выглядит идентично. |
Max = 2 | Представляет размер перечисления |
RandomStartTimes = 1 | Анимация плиток запускается в случайные моменты времени и выглядит разнообразно. |