# SetTiles

> Sets an array of Tile s at the given XYZ coordinates of the corresponding cells in the Tilemap.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.Tilemaps](/engine/6000.7/script-reference/unityengine/tilemaps.md)
* **Assembly:** UnityEngine.TilemapModule

## SetTiles(Vector3Int\[], TileBase\[])

Sets an array of [Tile](/engine/6000.7/script-reference/unityengine/tilemaps/tile.md)s at the given XYZ coordinates of the corresponding cells in the [Tilemap](/engine/6000.7/script-reference/unityengine/tilemaps/tilemap.md).

```csharp
public void SetTiles(Vector3Int[] positionArray, TileBase[] tileArray)
```

### Parameters

**** (\[Vector3Int\[]]\(/engine/6000.7/script-reference/unityengine/vector3int)): An array of positions of tiles on the [Tilemap](/engine/6000.7/script-reference/unityengine/tilemaps/tilemap.md).**** (\[TileBase\[]]\(/engine/6000.7/script-reference/unityengine/tilemaps/tilebase)): An array of [Tile](/engine/6000.7/script-reference/unityengine/tilemaps/tile.md)s to be placed.

### Remarks

Refer to Scriptable Tiles and Tilemap for more information.

### Examples

```csharp
 // Fills Tilemap area with checkerboard pattern of tileA and tileB
using UnityEngine;
using UnityEngine.Tilemaps;

public class ExampleClass : MonoBehaviour
{
    public TileBase tileA;
    public TileBase tileB;
    public Vector2Int size;

    void Start()
    {
        Vector3Int[] positions = new Vector3Int[size.x * size.y];
        TileBase[] tileArray = new TileBase[positions.Length];

        for (int index = 0; index < positions.Length; index++)
        {
            positions[index] = new Vector3Int(index % size.x, index / size.y, 0);
            tileArray[index] = index % 2 == 0 ? tileA : tileB;
        }

        Tilemap tilemap = GetComponent<Tilemap>();
        tilemap.SetTiles(positions, tileArray);
    }
}
```

## SetTiles(NativeArray\<Vector3Int>, TileArray)

Sets an array of [Tile](/engine/6000.7/script-reference/unityengine/tilemaps/tile.md)s at the given XYZ coordinates of the corresponding cells in the [Tilemap](/engine/6000.7/script-reference/unityengine/tilemaps/tilemap.md).

```csharp
public void SetTiles(NativeArray<Vector3Int> positionArray, Tilemap.TileArray tileArray)
```

### Parameters

**** (\[NativeArray\<Vector3Int>]\(/engine/6000.7/script-reference/unity/collections/nativearray1)): The array of positions of tiles on the [Tilemap](/engine/6000.7/script-reference/unityengine/tilemaps/tilemap.md).**** (\[TileArray]\(/engine/6000.7/script-reference/unityengine/tilemaps/tilemap/tilearray)): The array of [Tile](/engine/6000.7/script-reference/unityengine/tilemaps/tile.md)s to place.

### Remarks

Refer to Scriptable Tiles and Tilemap for more information.

### Examples

```csharp
 // Fills Tilemap area with checkerboard pattern of tileA and tileB
using UnityEngine;
using UnityEngine.Tilemaps;
using Unity.Collections;

public class ExampleClass_Native : MonoBehaviour
{
    public TileBase tileA;
    public TileBase tileB;
    public Vector2Int size;

    void Start()
    {
        NativeArray<Vector3Int> positions = new NativeArray<Vector3Int>(size.x * size.y, Allocator.Temp);
        Tilemap.TileArray tileArray = new Tilemap.TileArray(positions.Length, Allocator.Temp);

        for (int index = 0; index < positions.Length; index++)
        {
            positions[index] = new Vector3Int(index % size.x, index / size.y, 0);
            tileArray[index] = index % 2 == 0 ? tileA : tileB;
        }

        Tilemap tilemap = GetComponent<Tilemap>();
        tilemap.SetTiles(positions, tileArray);
    }
}
```

## SetTiles(TileChangeData\[], bool)

Sets an array of [Tile](/engine/6000.7/script-reference/unityengine/tilemaps/tile.md)s with additonal properties at the given XYZ coordinates of the corresponding cells in the [Tilemap](/engine/6000.7/script-reference/unityengine/tilemaps/tilemap.md). The Color and Transform of the [TileChangeData](/engine/6000.7/script-reference/unityengine/tilemaps/tilechangedata.md) will take precedence over the values from the [Tile](/engine/6000.7/script-reference/unityengine/tilemaps/tile.md).

```csharp
public void SetTiles(TileChangeData[] tileChangeDataArray, bool ignoreLockFlags)
```

### Parameters

**** (\[TileChangeData\[]]\(/engine/6000.7/script-reference/unityengine/tilemaps/tilechangedata)): The array of [Tile](/engine/6000.7/script-reference/unityengine/tilemaps/tile.md)s with additional properties to place.**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Whether to ignore lock flags set in the tile's `TileFlags` when applying color and transform changes from [TileChangeData](/engine/6000.7/script-reference/unityengine/tilemaps/tilechangedata.md).

### Remarks

Refer to Scriptable Tiles and Tilemap for more information.

## SetTiles(NativeArray\<Vector3Int>, TileArray, NativeArray\<Color>, NativeArray\<Matrix4x4>, bool)

Sets an array of [Tile](/engine/6000.7/script-reference/unityengine/tilemaps/tile.md)s with additonal properties at the given XYZ coordinates of the corresponding cells in the [Tilemap](/engine/6000.7/script-reference/unityengine/tilemaps/tilemap.md). The color and transform of the corresponding arrays will take precedence over the values from the [Tile](/engine/6000.7/script-reference/unityengine/tilemaps/tile.md).

```csharp
public void SetTiles(NativeArray<Vector3Int> positionArray, Tilemap.TileArray tileArray, NativeArray<Color> colorArray, NativeArray<Matrix4x4> transformArray, bool ignoreLockFlags)
```

### Parameters

**** (\[NativeArray\<Vector3Int>]\(/engine/6000.7/script-reference/unity/collections/nativearray1)): An array of positions of tiles on the [Tilemap](/engine/6000.7/script-reference/unityengine/tilemaps/tilemap.md).**** (\[TileArray]\(/engine/6000.7/script-reference/unityengine/tilemaps/tilemap/tilearray)): The array of [Tile](/engine/6000.7/script-reference/unityengine/tilemaps/tile.md)s to place.**** (\[NativeArray\<Color>]\(/engine/6000.7/script-reference/unity/collections/nativearray1)): The array of colors for tiles on the [Tilemap](/engine/6000.7/script-reference/unityengine/tilemaps/tilemap.md).**** (\[NativeArray\<Matrix4x4>]\(/engine/6000.7/script-reference/unity/collections/nativearray1)): The array of transforms for tiles on the [Tilemap](/engine/6000.7/script-reference/unityengine/tilemaps/tilemap.md).**** (\[bool]\(https\://learn.microsoft.com/dotnet/api/system.boolean)): Whether to ignore lock flags set in the tile's `TileFlags` when applying color and transform changes from [TileChangeData](/engine/6000.7/script-reference/unityengine/tilemaps/tilechangedata.md).

### Remarks

Refer to Scriptable Tiles and Tilemap for more information.

### Examples

```csharp
 // Fills tilemap area with checkerboard pattern of tileA and tileB
using UnityEngine;
using UnityEngine.Tilemaps;
using Unity.Collections;

public class ExampleClass_Native_Color_Transform : MonoBehaviour
{
    public TileBase tileA;
    public TileBase tileB;
    public Vector2Int size;

    void Start()
    {
        NativeArray<Vector3Int> positions = new NativeArray<Vector3Int>(size.x * size.y, Allocator.Temp);
        Tilemap.TileArray tileArray = new Tilemap.TileArray(positions.Length, Allocator.Temp);
        NativeArray<Color> colorArray = new NativeArray<Color>(positions.Length, Allocator.Temp);
        NativeArray<Matrix4x4> transformArray = new NativeArray<Matrix4x4>(positions.Length, Allocator.Temp);

        for (int index = 0; index < positions.Length; index++)
        {
            positions[index] = new Vector3Int(index % size.x, index / size.y, 0);
            tileArray[index] = index % 2 == 0 ? tileA : tileB;
            colorArray[index] = index % 2 == 0 ? Color.white : Color.black;
            transformArray[index] = Matrix4x4.identity;
        }

        Tilemap tilemap = GetComponent<Tilemap>();
        tilemap.SetTiles(positions, tileArray, colorArray, transformArray, true);
    }
}
```
