# Rotating player towards direction of movement

Tried nearly everything I found on Unity Answers and Yotube and still haven’t found a solution, it’s been a week and I’m freaking out! Really need some help on this one…
I have a cube with the script below attached, and I want its rotation to change towards where it’s moving (if I move back, I want the “front” of the cube to turn back).

public class PlayerMovement : MonoBehaviour {

``````public CharacterController charController;
public Transform CameraTransform;
public float speed = 8.0f;
public float gravity = 9.8f;
public float jump = 10.0f;
bool canJump;
bool onWall;
float verticalVelocity;
Vector3 velocity;
Vector3 wallBounce;
Vector3 normal;

void Update () {
Vector3 movement = Vector3.zero;
movement.x = Input.GetAxisRaw ("Horizontal");
movement.z = Input.GetAxisRaw ("Vertical");
movement = Vector3.ClampMagnitude (movement, 1f);
movement *= speed;

Quaternion movementRotation = Quaternion.LookRotation(Vector3.ProjectOnPlane(CameraTransform.forward, Vector3.up), Vector3.up);
movement = movementRotation * movement;

movement = transform.TransformDirection (movement);

if (charController.isGrounded == false) {
movement = wallBounce;
}

movement = Vector3.ClampMagnitude (movement, speed);
movement = movement * (Time.deltaTime / Time.timeScale);

verticalVelocity = verticalVelocity - gravity * (Time.deltaTime / Time.timeScale);

if (Input.GetButtonDown ("Jump")) {

if (onWall)
{
Vector3 projected = Vector3.ProjectOnPlane (normal, Vector3.up);
wallBounce = projected.normalized * speed;
}
if (canJump)
verticalVelocity += jump;
}

movement.y = verticalVelocity * (Time.deltaTime / Time.timeScale);

CollisionFlags flags = charController.Move (movement);
velocity = movement / (Time.deltaTime / Time.timeScale);

if ((flags & CollisionFlags.Above) != 0)
{
canJump = false;
onWall = false;
movement.y = 0 * (Time.deltaTime / Time.timeScale);
}

if ((flags & CollisionFlags.Below) != 0)
{
wallBounce = Vector3.ProjectOnPlane (velocity, Vector3.up);
canJump = true;
verticalVelocity = -5f;
onWall = false;
}
else if ((flags & CollisionFlags.Sides) != 0)
{
canJump = true;
onWall = true;
}
else
{
canJump = false;
onWall = false;
}

}

void OnControllerColliderHit(ControllerColliderHit hit)
{
normal = hit.normal;
}
``````

}

I will suck your soul out through your wee wee if you solve this one for me, thanks.

Have you tried this?

``````transform.rotation = Quaternion.LookRotation(movement);
``````