# How To Smoothly Animate From One Camera Position To Another

The Question is basically self explanatory. I have a scene with many cameras and I'd like to smoothly switch from one to another. I am not looking for a cross fade effect but more to a camera moving and rotating the view in order to reach the next camera point of view and so on. To this end I have tried the following code:

    firstCamera.transform.position.x = Mathf.Lerp(firstCamera.transform.position.x, nextCamer.transform.position.x,Time.deltaTime*smooth);
firstCamera.transform.position.y = Mathf.Lerp(firstCamera.transform.position.y, nextCamera.transform.position.y,Time.deltaTime*smooth);
firstCamera.transform.position.z = Mathf.Lerp(firstCamera.transform.position.z, nextCamera.transform.position.z,Time.deltaTime*smooth);

firstCamera.transform.rotation.x = Mathf.Lerp(firstCamera.transform.rotation.x, nextCamera.transform.rotation.x,Time.deltaTime*smooth);
firstCamera.transform.rotation.z = Mathf.Lerp(firstCamera.transform.rotation.z, nextCamera.transform.rotation.z,Time.deltaTime*smooth);
firstCamera.transform.rotation.y = Mathf.Lerp(firstCamera.transform.rotation.y, nextCamera.transform.rotation.y,Time.deltaTime*smooth);


But the result is actually not that good.

Thank you all, I fixed it this way

 var pos:Vector3 = firstCamera.transform.position;
var rot:Quaternion = firstCamera.transform.rotation;
firstCamera.transform.position = Vector3.Lerp(pos, nextCamera.transform.position,Time.deltaTime*smooth);
firstCamera.transform.rotation = Quaternion.Lerp(rot, nextCamera.transform.rotation,Time.deltaTime*smooth);

• in the first line is the ply1.transform.position.x a mistake and meant to be nextCamera.transform.position.x? Commented Jun 15, 2012 at 20:23
• also, consider using a 3rd party tweening library like iTween Commented Jun 15, 2012 at 20:26
• You are using Lerp() incorrectly; please see this blog article. Commented Feb 13, 2015 at 1:06
• Using Lerp to perform an exponential ease-out blend like this is not incorrect per se — it cam often give a very pleasing feel for camera moves in particular. We just need to ensure that we adjust for deltaTime correctly, as this is done wrong in almost every example out there. Commented Jan 18, 2018 at 18:08

You need to save the original position/rotation of firstCamera. It seems to be using the current values.