Objects being Instantiated when not supposed to

I want to make two more playable characters to be created when I press a button (Not what this is about). When I start the game one of the object I am trying to instantiate is being instantiate once every frame, from what I can tell. The other object only is instantiated when I want it to. If you could also tell me how to make the GameObjects be created 1 unity to the right and 1 unit to the left of the object I have this script on.

#pragma strict

var BoxyBaby1 : GameObject;
var BoxyBaby2 : GameObject;

function Update () {
	if (Input.GetKey ("h"))
		Instantiate (BoxyBaby1, Vector3(1, 0, 0), Quaternion.identity); 
	    Instantiate (BoxyBaby2, Vector3(-1, 0, 0), Quaternion.identity);
}

I am a beginner by the way.

if (Input.GetKeyUp (“h”))

the second part of your question…

new Vector3(transform.position.x + 1, transform.position.y, transform.position.z);

new Vector3(transform.position.x - 1, transform.position.y, transform.position.z);

//if your gameobject is a child of another gameobject use localPosition