This is an old revision of the document!
General
Rotations
Unity uses 3 rotation systems. Intro to Quaternion Rotations (in Unity)
- Euler Angers - rotation about x, y, z axis
- Angle Axis - A normalized Vector3 representing the axis about which to rotate by float angle amount
- Quaternions - Angle Axis rotation representation that have been scaled to improve performance.
Quaternions
They are in the form of x, y, z, w
. They are always normalized, so x² + y² + z² + w² = 0
Creating Quaternions
// This has to be normalized. We generally never use this Quaternion rotation = new Quaternion(0,0,0,1); // You usually create a rotation in euler and then convert to quaternion. ==== Convertions ==== <code c#> // Convert from Quaternion to Euler: Vector3 inEuler = quaternionRotation.eulerAngles; // Convert Euler to Quaternion Quaternion inQuaternion = Quaternion.Euler(inEuler); // To Angle-Axis Quaternion randomQuaternion = Random.rotation; float angle; Vector3 axis; randomQuaternion.ToAngleAxis(out angle, out axis); // And back Quaternion rotation = Quaternion.AngleAxis(angle,axis);