Instantiate prefab on a grid pattern?

I have this code that works but how would I spawn the prefab only on a grid pattern? Here is the code:

var Block:GameObject;
 
function Update () 
    {
    if (Input.GetButtonDown ("Fire1")) 
        {
        var mousePos = Input.mousePosition;
        mousePos.z = 12.48309;
 
        var objectPos = Camera.main.ScreenToWorldPoint(mousePos);
        Instantiate(Block, objectPos, Quaternion.identity);
        }
    }

Any advice? Thanks in advanced.

If you’re wanting to lock the object to a grid, then you’d take objectPos after it’s been set and the use Mathf.Round(), Mathf.Floor(), or Mathf.Ceil() on objectPos.x, objectPos.y, and objectPos.z… assuming you’re wanting a grid of one metre squares, of course!

For a grid with squares of any size:

var Block:GameObject;
var squareSize : float = 1.0f;

function Update ()
{
    if (Input.GetButtonDown ("Fire1")) 
    {
        var mousePos : Vector3 = Input.mousePosition;
        mousePos.z = 12.48309; //I'm not sure why you're setting this to such a specific value?

        var objectPos : Vector3 = Camera.main.ScreenToWorldPoint(mousePos);
        //now you've gotten objectPos' initial value, 
        //lock it to a nearby grid point
        objectPos.x = Mathf.Round(objectPos.x/squareSize) * squareSize;
        objectPos.y = Mathf.Round(objectPos.y/squareSize) * squareSize;
        objectPos.z = Mathf.Round(objectPos.z/squareSize) * squareSize;
        
        Instantiate(Block, objectPos, Quaternion.identity);
    }
}