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.
Answer by Mindmapfreak · Jun 25, 2016 at 01:12 PM
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
Your answer
Follow this Question
Related Questions
LocalRotation and Transform Rotate 1 Answer
Syncing character animation with game object's local transform (SOLVED!) 1 Answer
My rotation is not the same in inspector as it is in the scirpt 0 Answers
transform rotations overwriting eachother 1 Answer
Instantiate with transform.rotation not shooting where aiming 0 Answers