Hello im currently working on a project where i need a cube to rotate on command in specific directions for example i need the cube to rotate along its x axis to make the face to the left of the cube on the top but im having an issue where when i rotate the cube on its x and follow up rotating on its z it does a flip on the corner and ends up facing a completely unexpected way. I have a feeling it is to do with my little understanding of the quaternion values and functions
here is the code attach it to any cube and try flipping it vertically and follow up with a horizontal flip to see what i mean it doesn’t happen all the time but if anyone has a fix i would appreciate it
using UnityEngine;
using System.Collections;
public class CubeRotate : MonoBehaviour {
public float speed = 55;
private float rotation;
Quaternion qTo;
void Update ()
{
if (Input.GetKeyDown ("w")) {
rotation -= 90;
qTo = Quaternion.Euler (rotation,0,0);
}
if (Input.GetKeyDown ("s")) {
rotation += 90;
qTo = Quaternion.Euler (rotation,0,0);
}
if (Input.GetKeyDown ("d")) {
rotation += 90;
qTo = Quaternion.Euler (0, 0, rotation);
}
if (Input.GetKeyDown ("a")) {
rotation -= 90;
qTo = Quaternion.Euler (0, 0, rotation);
}
transform.rotation = Quaternion.RotateTowards (transform.rotation, qTo, speed * Time.deltaTime);
}
}