If you want to tile an image, just decide how big the image will be, and how many tiles you want, loop through the positions, and draw them using DrawTexture.
// C# Example
public Vector2 tilePosition;
public Texture image;
public float tileSize;
public int tilesWide, tilesHigh;
void OnGUI()
{
for (int y = 0; y < tilesHigh; y++)
for (int x = 0; x < tilesWide; x++)
GUI.DrawTexture(new Rect(tilePosition.x + (x * tileSize), tilePosition.y + (y * tileSize), tileSize, tileSize), image);
}
If you want to use a texture atlas, then you would use DrawTextureWithTexCoords instead of DrawTexture, and you would probably need to have a 2D Array of values indicating which part of the atlas to draw at a given position.
This thread helped a lot. Might I add, I used the following tweak to make texture tile all the way across the screen automatically. I made tilesWide private and computer how many it would take to go across the screen:
tilesWide = Screen.width / tileSize +1;
the +1 is to make sure the texture doesn’t get cut off.