TileAnimationData
Scriptable Tile example

Other useful classes

TileFlags

None = 0

No flags are set for the Tile. This is the default for most Tiles.

LockColor = 1 << 0

Set this flag if the Tile script controls the color of the Tile. If this is set, the Tile controls the color as it is placed onto the TilemapA GameObject that allows you to quickly create 2D levels using tiles and a grid overlay. More info
See in Glossary
. You cannot change the Tile’s color through painting or using scriptsA piece of code that allows you to create your own Components, trigger game events, modify Component properties over time and respond to user input in any way you like. More info
See in Glossary
. If this is not set, you can change the Tile’s color through painting or using scripts.

LockTransform = 1 << 1

Set this flag if the Tile script controls the transform of the Tile. If this is set, the Tile controls the transform as it is placed onto the Tilemap. You cannot rotate or change the Tile’s transform through painting or using scripts. If this is not set, you can change the Tile’s transform through painting or using scripts.

LockAll = LockColor | LockTransform

This is a combination of all the lock flags used by TileBase.

InstantiateSpawnGameObjectRuntimeOnly = 1 << 2

Set this flag if the Tile script should spawn its game object only when your project is running and not in Editor mode.

Tile.ColliderType

None = 0

This Tile does not generate a colliderAn invisible shape that is used to handle physical collisions for an object. A collider doesn’t need to be exactly the same shape as the object’s mesh - a rough approximation is often more efficient and indistinguishable in gameplay. More info
See in Glossary
shape.

Sprite = 1

The collider shape generated by this Tile is the physics shape set by the SpriteA 2D graphic objects. If you are used to working in 3D, Sprites are essentially just standard textures but there are special techniques for combining and managing sprite textures for efficiency and convenience during development. More info
See in Glossary
that the Tile returns. If no physics shape has been set in the Sprite, it tries to generate a shape based on the outline of the Sprite.

Note: If a collider shape for a Tile needs to be generated in runtime, set a physics shape for the Sprite or set the Texture of the Sprite to be readable in order for Unity to generate a shape based on the outline.

Grid = 2

The collider shape generated by this Tile is the shape of the cell, defined by the layout of the Grid.

ITilemap

ITilemap is the base class where Tile can retrieve data from the Tilemap when the Tilemap tries to retrieve data from the Tile.

Vector3Int origin { get; }

This returns the origin point of the Tilemap in cellspace.

Vector3Int size { get; }

This returns the size of the Tilemap in cellspace.

Bounds localBounds { get; }

This returns the bounds of the Tilemap in localspace.

BoundsInt cellBounds { get; }

This returns the bounds of the Tilemap in cellspace.

Sprite GetSprite(Vector3Int location);

This returns the sprite used by the Tile in the Tilemap at the given location.

Color GetColor(Vector3Int location);

This returns the color used by the Tile in the Tilemap at the given location.

Matrix4x4 GetTransformMatrix(Vector3Int location);

This returns the transform matrix used by the Tile in the Tilemap at the given location.

TileFlags GetTileFlags(Vector3Int location);

This returns the tile flags used by the Tile in the Tilemap at the given location.

TileBase GetTile(Vector3Int location);

This returns the Tile in the Tilemap at the given location. If there is no Tile there, it returns null.

T GetTile<T>(Vector3Int location) where T : TileBase;

This returns the Tile in the Tilemap at the given location with type T. If there is no Tile with the matching type there, it returns null.

void RefreshTile(Vector3Int location);

This requests a refresh of the Tile in the Tilemap at the given location.

T GetComponent<T>();

This returns the component T that is attached to the GameObject of the Tilemap.


对文档有任何疑问,请移步至开发者社区提问,我们将尽快为您解答