# Vector4Field

> Make an X, Y, Z & W field for entering a Vector4.

## Definition

* **Type:** Method
* **Namespace:** [UnityEditor](/engine/6000.6/script-reference/unityeditor.md)
* **Assembly:** UnityEditor.CoreModule

## Vector4Field(string, Vector4, GUILayoutOption\[])

Make an X, Y, Z & W field for entering a [Vector4](/engine/6000.6/script-reference/unityengine/vector4.md).

```csharp
public static Vector4 Vector4Field(string label, Vector4 value, params GUILayoutOption[] options)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Label to display above the field.**** (\[Vector4]\(/engine/6000.6/script-reference/unityengine/vector4)): The value to edit.**** (\[GUILayoutOption\[]]\(/engine/6000.6/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layout properties. Any values passed in here will override settings defined by the `style`.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.6/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.6/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.6/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.6/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.6/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.6/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.6/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.6/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                              | Description                    |
| ----------------------------------------------------------------- | ------------------------------ |
| [Vector4](/engine/6000.6/script-reference/unityengine/vector4.md) | The value entered by the user. |

### Remarks

![ModifyQuaternionDirectly (Vector4Field)](/api/media?file=/engine/6000.6/media/images/ModifyQuaternionDirectly.png)

*Modify X,Y,Z and W values directly of a GameObject.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class ModifyQuaternionDirectly : UnityEditor.EditorWindow
{
    Quaternion quat;
    public Vector4 value;

    [MenuItem("Examples/Modify internal Quaternion")]
    static void Init()
    {
        ModifyQuaternionDirectly window = (ModifyQuaternionDirectly)EditorWindow.GetWindow(typeof(ModifyQuaternionDirectly), true, "My Empty Window");
        window.Show();
    }

    void OnGUI()
    {
        value = EditorGUILayout.Vector4Field("Components:", value);
        if (GUILayout.Button("Capture Rotation"))
            value = QuaternionToVector4(Selection.activeTransform.rotation);

        if (GUILayout.Button("Close"))
            this.Close();
    }

    static Vector4 QuaternionToVector4(Quaternion rot)
    {
        return new Vector4(rot.x, rot.y, rot.z, rot.w);
    }
}
```

## Vector4Field(GUIContent, Vector4, GUILayoutOption\[])

Make an X, Y, Z & W field for entering a [Vector4](/engine/6000.6/script-reference/unityengine/vector4.md).

```csharp
public static Vector4 Vector4Field(GUIContent label, Vector4 value, params GUILayoutOption[] options)
```

### Parameters

**** (\[GUIContent]\(/engine/6000.6/script-reference/unityengine/guicontent)): Label to display above the field.**** (\[Vector4]\(/engine/6000.6/script-reference/unityengine/vector4)): The value to edit.**** (\[GUILayoutOption\[]]\(/engine/6000.6/script-reference/unityengine/guilayoutoption)): An optional list of layout options that specify extra layout properties. Any values passed in here will override settings defined by the `style`.\
&#x20;Additional Resources: [GUILayout.Width](/engine/6000.6/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.6/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.6/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.6/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.6/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.6/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.6/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.6/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                              | Description                    |
| ----------------------------------------------------------------- | ------------------------------ |
| [Vector4](/engine/6000.6/script-reference/unityengine/vector4.md) | The value entered by the user. |

### Remarks

![ModifyQuaternionDirectly (Vector4Field)](/api/media?file=/engine/6000.6/media/images/ModifyQuaternionDirectly.png)

*Modify X,Y,Z and W values directly of a GameObject.*

### Examples

```csharp
using UnityEngine;
using UnityEditor;

public class ModifyQuaternionDirectly : UnityEditor.EditorWindow
{
    Quaternion quat;
    public Vector4 value;

    [MenuItem("Examples/Modify internal Quaternion")]
    static void Init()
    {
        ModifyQuaternionDirectly window = (ModifyQuaternionDirectly)EditorWindow.GetWindow(typeof(ModifyQuaternionDirectly), true, "My Empty Window");
        window.Show();
    }

    void OnGUI()
    {
        value = EditorGUILayout.Vector4Field("Components:", value);
        if (GUILayout.Button("Capture Rotation"))
            value = QuaternionToVector4(Selection.activeTransform.rotation);

        if (GUILayout.Button("Close"))
            this.Close();
    }

    static Vector4 QuaternionToVector4(Quaternion rot)
    {
        return new Vector4(rot.x, rot.y, rot.z, rot.w);
    }
}
```
