Making Camera Lerp back to original position

Hello All,

I am Lerping a camera away from its FPC, exploring a bit and then I want to move it back to it’s Original FPC

Here’s my Code:

Works now:
Zoom In:

	var target: Transform;
        var camPos: Vector3;
	var endPos: Vector3;
	var time : float;

	function OnMouseDown () {
	camPos = Vector3( Camera.main.transform.position.x, Camera.main.transform.position.y, Camera.main.transform.position.z);
	endPos = Vector3( target.transform.position.x, target.transform.position.y, target.transform.position.z);


	
	var i = 0.0;
    var rate = 1.0/time;
    while (i < 1.0) {
        i += Time.deltaTime * rate;
        Camera.main.transform.position = Vector3.Lerp(camPos, endPos, i);
        yield; 
        
        }
}

Zoom Out:

	var camPos: Vector3;
	var endPos: Vector3;
	var time : float;

	function OnMouseDown () {
	endPos = Vector3( Camera.main.transform.position.x, Camera.main.transform.position.y, Camera.main.transform.position.z);
	
    var i = 0.0;
    var rate = 1.0/time;
    while (i < 1.0) {
        i += Time.deltaTime * rate;
        Camera.main.transform.position = Vector3.Lerp( endPos, camPos, i);
        yield; 
        }
}        

I was hard coding Vector3’s to get it near it’s original position (& where the FPC is still)
But throughout the gameplay The Cam & FPC became more and more separated which leads to problems
Thanks

~ be

Hello All,

Here’s what I found to work that both puts the Camera Back to the FPController and also lerps it more specifically to where you click initially:

Zooom In script:

	var target: Transform;
	var controller : GameObject;
	var camPos: Vector3; 
	var endPos: Vector3;
	var time : float;


	   	function Update () {
		var controller : CharacterController = GetComponent(CharacterController);
		}
		
	function OnMouseDown () {
	camPos = Vector3( controller.transform.position.x, controller.transform.position.y, controller.transform.position.z);;
	endPos = Vector3( target.transform.position.x, target.transform.position.y, target.transform.position.z);

	
	var i = 0.0;
    var rate = 1.0/time;
    while (i < 1.0) {
        i += Time.deltaTime * rate;
        Camera.main.transform.position = Vector3.Lerp(camPos, endPos, i);
        yield; 
        
        }
}

THEN Zoom Out Script :

    	var target: Transform;
    	var controller : GameObject;
    	var camPos: Vector3; 
    	var endPos: Vector3;
    	var time : float;
    
    
    	   	function Update () {
    		var controller : CharacterController = GetComponent(CharacterController);
    		}
    		

	function OnMouseDown () {
	endPos = Vector3( Camera.main.transform.position.x, Camera.main.transform.position.y, Camera.main.transform.position.z);
	camPos = Vector3( controller.transform.position.x, controller.transform.position.y, controller.transform.position.z);;

	var i = 0.0;
    var rate = 1.0/time;
    while (i < 1.0) {
        i += Time.deltaTime * rate;
        Camera.main.transform.position = Vector3.Lerp( endPos, camPos, i);
        yield; 
        }
        
	}