# Rotate object in specific direction

I have gameobject that rotates (only by y axis) with compass from `Input.compass.trueHeading`. For smoothing my rotation I use `Mathf.SmoothDamp()` and it works perfect, but only when I’m rotating in clockwise direction. If I rotate my phone in counterclockwise direction and passing 0° (eg. from 12° to 350° in counterclockwise direction) my gameobject start to rotate in clockwise direction until it reach desired degree.

Before that I used `Mathf.SmoothDampAngle()` for calculating my rotation, but than I had problem with short-way rotation (when I want to rotate my object from 12° to 350° in clockwise direction it starts to rotate in short-way direction, which is 22° by counterclockwise

So the question is: how I can improve my rotation and rotate my gameobject in specific direction by `Imput.compass.trueHeading`?

Smooth the rotation itself instead of the angles using Quaternion.Slerp()

``````Quaternion target = Quaternion.Euler(0, desiredAngle, 0);

transform.rotation = Quaternion.Slerp(transform.rotation, target, speed * Time.deltaTime);
``````

If this doesn’t give you the rotation you desire, you could also try Quaternion.RotateTowards(), which will give you a slightly different kind of smoothing

``````transform.rotation = Quaternion.RotateTowards(transform.rotation, target, speed * Time.deltaTime);
``````