I made the camera smoothly follow the rocket using a reference point away in the Z axis, and making a slerp. I’m not exactly if I did right, though (I wish it could be smoother). Here’s the result:
To do that, I create an empty object (CameraBase) and placed it far in the z axis (I used 50). Then, I attached an script to it, that receives as SerializableFields the Camera object and the Rocket transform object… and finally, I created another SerializableField with a float to help calculate a distance for the camera. The update method became as follows:
void Update()
{
//interpolates a new position on a sphere based on the CameraBase and the Rocket
var position = Vector3.Slerp(transform.position, rocket.position, 1);
//caches the camera current position - to keep y and z values
var camPos = camera.transform.position;
//slides the camera in the x axis with the interpolated position, but keeps y and z
camera.transform.position = new Vector3(position.x * distance, camPos.y, camPos.z);
//keep the camera pointing at CameraBase
camera.transform.LookAt(transform, Vector3.up);
}
What do you guys think???