Vertical moving

Hello,
i have a little problem. I making slender game in space and i want vertical moving. And i have 2 problems.

  1. I cant move down (its working in first few clicks and then player quckly start moving up and u cant stop this moving)
  2. Moving is like jumping from one to one its not smooth move

CODE:
#pragma strict
var boostFactor : float = 100; // or whatever
//var GameObject Target;

function Start () {

}

function Update () {
	if ( Input.GetButtonDown("Fire1") ) {

	 	gameObject.rigidbody.velocity += gameObject.transform.up * boostFactor;

	}
	
	if ( Input.GetButtonDown("Fire2") ) {

	 	gameObject.rigidbody.velocity -= gameObject.transform.up * boostFactor;

	}
}

Instead of directly changing the velocity, how about adding force instead?

if ( Input.GetButtonDown("Fire1") ) 
{ 
   gameObject.rigidbody.AddForce(gameObject.transform.up * boostFactor);
}
 
if ( Input.GetButtonDown("Fire2") ) 
{
   gameObject.rigidbody.AddForce(gameObject.transform.up * -boostFactor);
}