# w

> W component of the Quaternion. Do not directly modify quaternions.

## Definition

* **Type:** Field
* **Namespace:** [UnityEngine](/engine/6000.6/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

```csharp
public float w
```

### Examples

```csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// Quaternion-w script example
// Create a Sphere and apply a texture to help the orientation be recognised.
// At each second the sphere is rotated and the quaternion is displayed.

public class ExampleClass : MonoBehaviour
{
    private float timeDelay = 0.0f;
    private Quaternion q;
    private string label = "";

    void Awake()
    {
        // Add a line that passes through the y axis of the sphere and make
        // the line as a child.
        GameObject line = GameObject.CreatePrimitive(PrimitiveType.Cube);
        line.transform.localScale = new Vector3(0.05f, 1.5f, 0.05f);
        line.transform.parent = gameObject.transform;
    }

    void Update()
    {
        if (timeDelay > 1.0f)
        {
            Vector3 v;

            // generate a random euler angle
            v.x = Random.Range(0.0f, 360.0f);
            v.y = Random.Range(0.0f, 360.0f);
            v.z = Random.Range(0.0f, 360.0f);

            // convert the euler into a quaternion
            q = Quaternion.Euler(v);

            // and apply it to the sphere
            transform.rotation = q;

            // generate a string
            label = q.ToString("f3");

            // and start another 1 second delay
            timeDelay = 0.0f;
        }
        timeDelay += Time.deltaTime;
    }

    // display the quaternion as a string
    void OnGUI()
    {
        GUI.skin.label.fixedHeight = 40;
        GUI.skin.label.fontSize = 24;
        GUI.Label(new Rect(10, 10, 400, 30), label);
    }
}
```
