What is faster? Looping through each tile and use SetTile, or looping through each tile, add it to a list/array, then use SetTiles?
Tilemap tilemap;
foreach (var pos in tilemap.cellBounds.allPositionsWithin)
{
if (/* some condition */)
tilemap.SetTile(pos, /* Your tile here */);
}
Or
Tilemap tilemap;
List<Vector3Int> allPositions = new List<Vector3Int>(tilemap.cellBounds.size.x * tilemap.cellBounds.size.y);
foreach (var pos in tilemap.cellBounds.allPositionsWithin)
{
if (/* some condition */)
allPositions.Add(pos);
}
tilemap.SetTiles(allPositions, /* Your tile */);