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);
}
}