- Home /

# Rotating about and only one axis

Hello Unity community, first post here, hope my question formatting is okay! I'm trying to rotate about the z-axis a tower that is looking at the player who can move around the tower on the X-Y plane. I've tried multiple functions including Vector3.Slerp, Vector3.Lerp, Quaternion.RotateTowards. They seemed to work but, however, all three have a special case that I do not intend the tower to do: when the player is completely behind the tower, the tower chooses to rotate about its local Y-axis (note: it is a 2d platform and I have rotated the tower object so that +Z points at -X, +Y still pointing at +Y, and +X pointing at +Z).

So what I tried instead was using Quaternion.Slerp to rotate the tower, but as soon as I run the following code the tower slerps to and points forward in the positive z-axis.

```
Vector3 aimVector = playerPosition - transform.position;
Quaternion newRotation = Quaternion.LookRotation(aimVector, transform.up);
newRotation.x = 0.0f;
newRotation.y = 0.0f;
transform.rotation = Quaternion.Slerp(transform.rotation, newRotation, Time.deltaTime * rotateSpeed);
```

**Answer** by robertbu
·
Sep 26, 2014 at 12:35 AM

You don't want to directly assign the x,y,z values of a Quaternion (rotation) unless you have a firm understanding of the math. You can achieve what you want by:

```
Vector3 aimVector = playerPosition - transform.position;
aimVector.y = 0.0f;
Quaternion newRotation = Quaternion.LookRotation(aimVector, transform.up);
transform.rotation = Quaternion.Slerp(transform.rotation, newRotation, Time.deltaTime * rotateSpeed);
```

### Your answer

### Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.