I could use some pointers on how Quaternion.AngleAxis() and Quaternion.ToAngleAxis() works.
What I’m trying to do is to rotate a box 90 degrees around the X-Axis each time I scroll the mouse-wheel forwards. Everything works fine until the box have made a full 360 degree rotation, that is 4 forwards on the mouse-wheel, and starts the second ‘lap’ of rotation. Suddenly the box rotates forward one step and when I scroll the mouse-wheel the next time it rotates back to 0 degrees.
Here is the code for picking the angles.
if (scroll > 0){
rot = 0f;
Vector3 right = transform.right;
float angle = 0f;
transform.rotation.ToAngleAxis(out angle, out right);
angle = angle + 90f;
startRotation = transform.rotation;
endRotation = Quaternion.AngleAxis(angle, Vector3.right);
}
And the code for the actual rotation
if (rot < 1f){
rot = rot + Time.deltaTime * 4f;
transform.rotation = Quaternion.Lerp(startRotation, endRotation, rot);
}
Any suggestions to what’s causing this are very appreciated.