How to smooth aiming?

Hello. i am working on my weapon script and i have problem with aiming. well its not actual problem. here’s the thing… when i right click my weapon can aim but it just pop at aim position, i want to make it smooth go to my aim position.

var normalPos : Vector3;
var aimPos : Vector3;
var aimSpeed = 2.0;

function Update(){
	if(Input.GetButton("Fire2")){
			//When RightClicked, aim
			transform.localPosition = Vector3.Lerp(transform.position, aimPos, aimSpeed);
		}else{
			transform.localPosition = Vector3.Lerp(transform.position, normalPos, aimSpeed);
		}
}

Here you go you can have my script


var applymode : boolean;
 
var ObjectToMove: GameObject; 
 
var smoothTime : float = 1.0f;
 

var PositionX : float;
 
var PositionY : float;
 
var PositionZ : float;


var StartPos: Vector3;

 
function Start(){

  StartPos = transform.localPosition;   
      
}   
 
function Apply()
{
   
   
    var targetPosition : Vector3 = Vector3.Lerp(ObjectToMove.transform.localPosition, Vector3(PositionX,PositionY, PositionZ), Time.deltaTime * smoothTime);
 
 
 
    ObjectToMove.transform.localPosition = targetPosition;
    
}

function ApplyOff()
{
   applymode = false;
  var targetPositionRes : Vector3 = Vector3.Lerp(ObjectToMove.transform.localPosition, StartPos, Time.deltaTime * smoothTime);
     ObjectToMove.transform.localPosition = targetPositionRes;
     
}


function Update () {
 
    if(Input.GetMouseButtonDown(1) && applymode == false){
       applymode = true;
       Apply();
    }
   
     if(Input.GetMouseButtonUp(1)){
       applymode = false;
      
    }
   if(!applymode){
    ApplyOff();
   }
   
    
 
 
 
    if(applymode){
 
       Apply();
    }   
    
}

Should work perfectly enjoy