# How to slow down transform.LookAt

Im trying to make the camera move with the mouse pointer in my game using:

``````public class camera : MonoBehaviour {
public static Vector3 Point;
public float zDistance;

void FixedUpdate(){
var mousePos = Input.mousePosition;
Point=camera.ScreenToWorldPoint(new Vector3(mousePos.x,mousePos.y,zDistance));
transform.LookAt(Point);
}
}v
``````

It works but the screen moves really fast, too fast to be able to play properly. Is there any way to slow it down?

From my answer to this question: you should use Quaternion.FromToRotation and then use Quaternion.Lerp. Something like this (This code should be in FixedUpdate for smooth results):

`````` Vector3 direction = Point - transform.position;
Quaternion toRotation = Quaternion.FromToRotation(transform.forward, direction);
transform.rotation = Quaternion.Lerp(transform.rotation, toRotation, speed * Time.time);
``````

You can set the speed variable to how slow or fast you want the rotation to be. You can look at the result here (although there the y axis of the object is pointing towards a point).

I know this post is super old, but I wanted to amend @Evil-Tak 's post:

If `Quaternion.FromToRotation()` doesn’t work, try using `Quaternion.LookRotation()` in it’s place (slightly different params).

Vector3 relativePos = focus.position - transform.position;
Quaternion toRotation = Quaternion.LookRotation(relativePos);
transform.rotation = Quaternion.Lerp( transform.rotation, toRotation, 1 * Time.deltaTime );

Everyone else is already correctly mentioning how to modify transform.rotation, but personally I find Quaternions to be really confusing so my preferred method for rotating is by directly modifying transform.forward

You just calculate the direction vector with `(targetPosition - transform.position).normalized`

You can combine it with Vector3.Lerp to get a nice smooth rotation SMOOTH with LERP! (Move, Rotate, Float) shorts - Code Monkey

Adding on, when I tried the code above from @EvilTak, it instantly turned. I changed `Time.time`to `Time.deltaTime` to resolve this.

Combining the above answers worked for me:

``````Vector3 direction = Point - transform.position;
Quaternion toRotation = Quaternion.LookRotation(direction, transform.up);
trasnform.rotation = Quaternion.Lerp(transform.rotation, toRotation, speed * Time.deltaTime);
``````

,Combining the above answers worked for me:

``````Vector3 direction = Point - transform.position;
Quaternion toRotation = Quaternion.LookRotation(direction, transform.up);
trasnform.rotation = Quaternion.Lerp(transform.rotation, toRotation, speed * Time.deltaTime);
``````