You should not touch x, y, z, or w. These are the internal fields of the Quaternion. Consider them magic.
You should also never touch eulerAngles.x, eulerAngles.y, eulerAngles.z for different reasons. See link below.
NOTE: Those last three (x,y,z) have ABSOLUTELY NOTHING to do with the first four (x,y,z,w).
They have NOTHING to do with each other. Really. Honest! Nothing.
If you doubt that assertion, print them out while wiggling (rotating) an object. You’ll see.
All about Euler angles and rotations, by StarManta:
https://starmanta.gitbooks.io/unitytipsredux/content/second-question.html
using UnityEngine;
// @kurtdekker - put this on a GameObject, rotate it and observe the outputs
public class DumpQuat : MonoBehaviour
{
void Update ()
{
Quaternion q = transform.rotation;
Debug.Log( "x=" + q.x.ToString("0.00") + ", " +
"y=" + q.y.ToString("0.00") + ", " +
"z=" + q.z.ToString("0.00") + ", " +
"w=" + q.w.ToString("0.00") + ", " +
"eu.x=" + q.eulerAngles.x.ToString("0.00") + ", " +
"eu.y=" + q.eulerAngles.y.ToString("0.00") + ", " +
"eu.z=" + q.eulerAngles.z.ToString("0.00")
);
}
}