Instantiates half in ground

Hi! I have a script that for now instantiates cubes at mousepos which is working almost perfectly.

The only problem is that the object is halfway through the ground and I have no idea what I’m gonna do to fix that. I want the object to instantiate exactly above the ground.

		if(chosenObject == 1){
				if(player.Money > 100){
					player.Money -= 100;
					player.Population += 30;
					player.Brainwashiness += 30;
					Debug.Log("Chosen object is 1 ..");
					Debug.Log (hit.point);
					Instantiate(Object1, hit.point, Quaternion.identity); 
				}

etc.

Thank you!

wherever you instaniate, do this…

GameObject newObject;

newObject = (GameObject) Instantiate(Object1, hit.point, Quaternion.identity);

Vector3 currentPosition = newObject.transform.position;

currentPosition.y = currentPosition.y + 5.0f;

newObject.transform.position = currentPosition;