Transform component rotation variables in script.

So… i have this Quaternion variable, and i’m setting the rotation on the X, Y and Z axis to the X, Y and Z of the quaternion variable (W is 0).

I have the values written on paper, and if I change the rotation from the Inspector, everything is working fine, but when I set it through the script, it displays totally different values in the inspector and the rotation isn’t as i want it to be.

I feel like i should point out that the object I mentioned is child of a rig bone.

I assumed i need to change the localRotation propriety but i had no luck, so i tried rotation, and eulerAngles. Different results on every single one, but not quite what i was looking for.

So my question is, what is the Rotation Vector3-looking variable i see in the Transform Component called in script.

The X-, Y-, Z-values of a quaternion do not correspond with the X-, Y-, Z-values of euler angles. They use complex numbers to represent a rotation around a single axis (every combination of rotations around a fixed point can be represented by a rotation around a single axis). Wikipedia-link If you want to set the rotation of a GameObject to specific euler angles you should use Quaternion.Euler(eulerX,eulerY,eulerZ) like this:

myGameObject.transform.rotation = Quaternion.Euler(X,Y,Z); //same for localRotation

If you want to get the euler angles you should use the Quaternion.eulerAngles-property like this:

Vector3 eulerAngleValues = myGameObject.transform.rotation.eulerAngles; //same for localRotation