# CurveField

> Make a field for editing an AnimationCurve.

## Definition

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

## CurveField(AnimationCurve, GUILayoutOption\[])

Make a field for editing an [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md).

```csharp
public static AnimationCurve CurveField(AnimationCurve value, params GUILayoutOption[] options)
```

### Parameters

**** (\[AnimationCurve]\(/engine/6000.0/script-reference/unityengine/animationcurve)): The curve to edit.**** (\[GUILayoutOption\[]]\(/engine/6000.0/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.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                                            | Description                   |
| ------------------------------------------------------------------------------- | ----------------------------- |
| [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md) | The curve edited by the user. |

### Remarks

![FollowCurve (CurveField)](/api/media?file=/engine/6000.0/media/images/FollowCurve.png)

*Create an animation on the different axis and assign it to a GameObject.*

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

public class FollowCurve : EditorWindow
{
    AnimationCurve curveX = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveY = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveZ = AnimationCurve.Linear(0, 0, 10, 10);

    [MenuItem("Examples/Create Curve For Object")]
    static void Init()
    {
        FollowCurve window = (FollowCurve)EditorWindow.GetWindow(typeof(FollowCurve));
        window.Show();
    }

    void OnGUI()
    {
        curveX = EditorGUILayout.CurveField("Animation on X", curveX);
        curveY = EditorGUILayout.CurveField("Animation on Y", curveY);
        curveZ = EditorGUILayout.CurveField("Animation on Z", curveZ);

        if (GUILayout.Button("Generate Curve"))
            AddCurveToSelectedGameObject();
    }

    void  AddCurveToSelectedGameObject()
    {
        if (Selection.activeGameObject)
        {
            FollowAnimationCurve comp =
                Selection.activeGameObject.AddComponent<FollowAnimationCurve>();

            comp.SetCurves(curveX, curveY, curveZ);
        }
        else
        {
            Debug.LogError("No Game Object selected for adding an animation curve");
        }
    }
}
```

And the script that works with the example:

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

public class FollowAnimationCurve : MonoBehaviour
{
    public AnimationCurve curveX;
    public AnimationCurve curveY;
    public AnimationCurve curveZ;

    public void SetCurves(AnimationCurve xC, AnimationCurve yC, AnimationCurve zC)
    {
        curveX = xC;
        curveY = yC;
        curveZ = zC;
    }

    void Update()
    {
        transform.position = new Vector3(curveX.Evaluate(Time.time), curveY.Evaluate(Time.time), curveZ.Evaluate(Time.time));
    }
}
```

## CurveField(string, AnimationCurve, GUILayoutOption\[])

Make a field for editing an [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md).

```csharp
public static AnimationCurve CurveField(string label, AnimationCurve value, params GUILayoutOption[] options)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Optional label to display in front of the field.**** (\[AnimationCurve]\(/engine/6000.0/script-reference/unityengine/animationcurve)): The curve to edit.**** (\[GUILayoutOption\[]]\(/engine/6000.0/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.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                                            | Description                   |
| ------------------------------------------------------------------------------- | ----------------------------- |
| [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md) | The curve edited by the user. |

### Remarks

![FollowCurve (CurveField)](/api/media?file=/engine/6000.0/media/images/FollowCurve.png)

*Create an animation on the different axis and assign it to a GameObject.*

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

public class FollowCurve : EditorWindow
{
    AnimationCurve curveX = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveY = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveZ = AnimationCurve.Linear(0, 0, 10, 10);

    [MenuItem("Examples/Create Curve For Object")]
    static void Init()
    {
        FollowCurve window = (FollowCurve)EditorWindow.GetWindow(typeof(FollowCurve));
        window.Show();
    }

    void OnGUI()
    {
        curveX = EditorGUILayout.CurveField("Animation on X", curveX);
        curveY = EditorGUILayout.CurveField("Animation on Y", curveY);
        curveZ = EditorGUILayout.CurveField("Animation on Z", curveZ);

        if (GUILayout.Button("Generate Curve"))
            AddCurveToSelectedGameObject();
    }

    void  AddCurveToSelectedGameObject()
    {
        if (Selection.activeGameObject)
        {
            FollowAnimationCurve comp =
                Selection.activeGameObject.AddComponent<FollowAnimationCurve>();

            comp.SetCurves(curveX, curveY, curveZ);
        }
        else
        {
            Debug.LogError("No Game Object selected for adding an animation curve");
        }
    }
}
```

And the script that works with the example:

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

public class FollowAnimationCurve : MonoBehaviour
{
    public AnimationCurve curveX;
    public AnimationCurve curveY;
    public AnimationCurve curveZ;

    public void SetCurves(AnimationCurve xC, AnimationCurve yC, AnimationCurve zC)
    {
        curveX = xC;
        curveY = yC;
        curveZ = zC;
    }

    void Update()
    {
        transform.position = new Vector3(curveX.Evaluate(Time.time), curveY.Evaluate(Time.time), curveZ.Evaluate(Time.time));
    }
}
```

## CurveField(GUIContent, AnimationCurve, GUILayoutOption\[])

Make a field for editing an [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md).

```csharp
public static AnimationCurve CurveField(GUIContent label, AnimationCurve value, params GUILayoutOption[] options)
```

### Parameters

**** (\[GUIContent]\(/engine/6000.0/script-reference/unityengine/guicontent)): Optional label to display in front of the field.**** (\[AnimationCurve]\(/engine/6000.0/script-reference/unityengine/animationcurve)): The curve to edit.**** (\[GUILayoutOption\[]]\(/engine/6000.0/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.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                                            | Description                   |
| ------------------------------------------------------------------------------- | ----------------------------- |
| [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md) | The curve edited by the user. |

### Remarks

![FollowCurve (CurveField)](/api/media?file=/engine/6000.0/media/images/FollowCurve.png)

*Create an animation on the different axis and assign it to a GameObject.*

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

public class FollowCurve : EditorWindow
{
    AnimationCurve curveX = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveY = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveZ = AnimationCurve.Linear(0, 0, 10, 10);

    [MenuItem("Examples/Create Curve For Object")]
    static void Init()
    {
        FollowCurve window = (FollowCurve)EditorWindow.GetWindow(typeof(FollowCurve));
        window.Show();
    }

    void OnGUI()
    {
        curveX = EditorGUILayout.CurveField("Animation on X", curveX);
        curveY = EditorGUILayout.CurveField("Animation on Y", curveY);
        curveZ = EditorGUILayout.CurveField("Animation on Z", curveZ);

        if (GUILayout.Button("Generate Curve"))
            AddCurveToSelectedGameObject();
    }

    void  AddCurveToSelectedGameObject()
    {
        if (Selection.activeGameObject)
        {
            FollowAnimationCurve comp =
                Selection.activeGameObject.AddComponent<FollowAnimationCurve>();

            comp.SetCurves(curveX, curveY, curveZ);
        }
        else
        {
            Debug.LogError("No Game Object selected for adding an animation curve");
        }
    }
}
```

And the script that works with the example:

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

public class FollowAnimationCurve : MonoBehaviour
{
    public AnimationCurve curveX;
    public AnimationCurve curveY;
    public AnimationCurve curveZ;

    public void SetCurves(AnimationCurve xC, AnimationCurve yC, AnimationCurve zC)
    {
        curveX = xC;
        curveY = yC;
        curveZ = zC;
    }

    void Update()
    {
        transform.position = new Vector3(curveX.Evaluate(Time.time), curveY.Evaluate(Time.time), curveZ.Evaluate(Time.time));
    }
}
```

## CurveField(AnimationCurve, Color, Rect, GUILayoutOption\[])

Make a field for editing an [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md).

```csharp
public static AnimationCurve CurveField(AnimationCurve value, Color color, Rect ranges, params GUILayoutOption[] options)
```

### Parameters

**** (\[AnimationCurve]\(/engine/6000.0/script-reference/unityengine/animationcurve)): The curve to edit.**** (\[Color]\(/engine/6000.0/script-reference/unityengine/color)): The color to show the curve with.**** (\[Rect]\(/engine/6000.0/script-reference/unityengine/rect)): Optional rectangle that the curve is restrained within.**** (\[GUILayoutOption\[]]\(/engine/6000.0/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.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                                            | Description                   |
| ------------------------------------------------------------------------------- | ----------------------------- |
| [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md) | The curve edited by the user. |

### Remarks

![FollowCurve (CurveField)](/api/media?file=/engine/6000.0/media/images/FollowCurve.png)

*Create an animation on the different axis and assign it to a GameObject.*

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

public class FollowCurve : EditorWindow
{
    AnimationCurve curveX = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveY = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveZ = AnimationCurve.Linear(0, 0, 10, 10);

    [MenuItem("Examples/Create Curve For Object")]
    static void Init()
    {
        FollowCurve window = (FollowCurve)EditorWindow.GetWindow(typeof(FollowCurve));
        window.Show();
    }

    void OnGUI()
    {
        curveX = EditorGUILayout.CurveField("Animation on X", curveX);
        curveY = EditorGUILayout.CurveField("Animation on Y", curveY);
        curveZ = EditorGUILayout.CurveField("Animation on Z", curveZ);

        if (GUILayout.Button("Generate Curve"))
            AddCurveToSelectedGameObject();
    }

    void  AddCurveToSelectedGameObject()
    {
        if (Selection.activeGameObject)
        {
            FollowAnimationCurve comp =
                Selection.activeGameObject.AddComponent<FollowAnimationCurve>();

            comp.SetCurves(curveX, curveY, curveZ);
        }
        else
        {
            Debug.LogError("No Game Object selected for adding an animation curve");
        }
    }
}
```

And the script that works with the example:

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

public class FollowAnimationCurve : MonoBehaviour
{
    public AnimationCurve curveX;
    public AnimationCurve curveY;
    public AnimationCurve curveZ;

    public void SetCurves(AnimationCurve xC, AnimationCurve yC, AnimationCurve zC)
    {
        curveX = xC;
        curveY = yC;
        curveZ = zC;
    }

    void Update()
    {
        transform.position = new Vector3(curveX.Evaluate(Time.time), curveY.Evaluate(Time.time), curveZ.Evaluate(Time.time));
    }
}
```

## CurveField(string, AnimationCurve, Color, Rect, GUILayoutOption\[])

Make a field for editing an [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md).

```csharp
public static AnimationCurve CurveField(string label, AnimationCurve value, Color color, Rect ranges, params GUILayoutOption[] options)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): Optional label to display in front of the field.**** (\[AnimationCurve]\(/engine/6000.0/script-reference/unityengine/animationcurve)): The curve to edit.**** (\[Color]\(/engine/6000.0/script-reference/unityengine/color)): The color to show the curve with.**** (\[Rect]\(/engine/6000.0/script-reference/unityengine/rect)): Optional rectangle that the curve is restrained within.**** (\[GUILayoutOption\[]]\(/engine/6000.0/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.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                                            | Description                   |
| ------------------------------------------------------------------------------- | ----------------------------- |
| [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md) | The curve edited by the user. |

### Remarks

![FollowCurve (CurveField)](/api/media?file=/engine/6000.0/media/images/FollowCurve.png)

*Create an animation on the different axis and assign it to a GameObject.*

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

public class FollowCurve : EditorWindow
{
    AnimationCurve curveX = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveY = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveZ = AnimationCurve.Linear(0, 0, 10, 10);

    [MenuItem("Examples/Create Curve For Object")]
    static void Init()
    {
        FollowCurve window = (FollowCurve)EditorWindow.GetWindow(typeof(FollowCurve));
        window.Show();
    }

    void OnGUI()
    {
        curveX = EditorGUILayout.CurveField("Animation on X", curveX);
        curveY = EditorGUILayout.CurveField("Animation on Y", curveY);
        curveZ = EditorGUILayout.CurveField("Animation on Z", curveZ);

        if (GUILayout.Button("Generate Curve"))
            AddCurveToSelectedGameObject();
    }

    void  AddCurveToSelectedGameObject()
    {
        if (Selection.activeGameObject)
        {
            FollowAnimationCurve comp =
                Selection.activeGameObject.AddComponent<FollowAnimationCurve>();

            comp.SetCurves(curveX, curveY, curveZ);
        }
        else
        {
            Debug.LogError("No Game Object selected for adding an animation curve");
        }
    }
}
```

And the script that works with the example:

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

public class FollowAnimationCurve : MonoBehaviour
{
    public AnimationCurve curveX;
    public AnimationCurve curveY;
    public AnimationCurve curveZ;

    public void SetCurves(AnimationCurve xC, AnimationCurve yC, AnimationCurve zC)
    {
        curveX = xC;
        curveY = yC;
        curveZ = zC;
    }

    void Update()
    {
        transform.position = new Vector3(curveX.Evaluate(Time.time), curveY.Evaluate(Time.time), curveZ.Evaluate(Time.time));
    }
}
```

## CurveField(GUIContent, AnimationCurve, Color, Rect, GUILayoutOption\[])

Make a field for editing an [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md).

```csharp
public static AnimationCurve CurveField(GUIContent label, AnimationCurve value, Color color, Rect ranges, params GUILayoutOption[] options)
```

### Parameters

**** (\[GUIContent]\(/engine/6000.0/script-reference/unityengine/guicontent)): Optional label to display in front of the field.**** (\[AnimationCurve]\(/engine/6000.0/script-reference/unityengine/animationcurve)): The curve to edit.**** (\[Color]\(/engine/6000.0/script-reference/unityengine/color)): The color to show the curve with.**** (\[Rect]\(/engine/6000.0/script-reference/unityengine/rect)): Optional rectangle that the curve is restrained within.**** (\[GUILayoutOption\[]]\(/engine/6000.0/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.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).

### Returns

| Type                                                                            | Description                   |
| ------------------------------------------------------------------------------- | ----------------------------- |
| [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md) | The curve edited by the user. |

### Remarks

![FollowCurve (CurveField)](/api/media?file=/engine/6000.0/media/images/FollowCurve.png)

*Create an animation on the different axis and assign it to a GameObject.*

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

public class FollowCurve : EditorWindow
{
    AnimationCurve curveX = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveY = AnimationCurve.Linear(0, 0, 10, 10);
    AnimationCurve curveZ = AnimationCurve.Linear(0, 0, 10, 10);

    [MenuItem("Examples/Create Curve For Object")]
    static void Init()
    {
        FollowCurve window = (FollowCurve)EditorWindow.GetWindow(typeof(FollowCurve));
        window.Show();
    }

    void OnGUI()
    {
        curveX = EditorGUILayout.CurveField("Animation on X", curveX);
        curveY = EditorGUILayout.CurveField("Animation on Y", curveY);
        curveZ = EditorGUILayout.CurveField("Animation on Z", curveZ);

        if (GUILayout.Button("Generate Curve"))
            AddCurveToSelectedGameObject();
    }

    void  AddCurveToSelectedGameObject()
    {
        if (Selection.activeGameObject)
        {
            FollowAnimationCurve comp =
                Selection.activeGameObject.AddComponent<FollowAnimationCurve>();

            comp.SetCurves(curveX, curveY, curveZ);
        }
        else
        {
            Debug.LogError("No Game Object selected for adding an animation curve");
        }
    }
}
```

And the script that works with the example:

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

public class FollowAnimationCurve : MonoBehaviour
{
    public AnimationCurve curveX;
    public AnimationCurve curveY;
    public AnimationCurve curveZ;

    public void SetCurves(AnimationCurve xC, AnimationCurve yC, AnimationCurve zC)
    {
        curveX = xC;
        curveY = yC;
        curveZ = zC;
    }

    void Update()
    {
        transform.position = new Vector3(curveX.Evaluate(Time.time), curveY.Evaluate(Time.time), curveZ.Evaluate(Time.time));
    }
}
```

## CurveField(SerializedProperty, Color, Rect, GUILayoutOption\[])

Make a field for editing an [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md).

```csharp
public static void CurveField(SerializedProperty property, Color color, Rect ranges, params GUILayoutOption[] options)
```

### Parameters

**** (\[SerializedProperty]\(/engine/6000.0/script-reference/unityeditor/serializedproperty)): The curve to edit.**** (\[Color]\(/engine/6000.0/script-reference/unityengine/color)): The color to show the curve with.**** (\[Rect]\(/engine/6000.0/script-reference/unityengine/rect)): Optional rectangle that the curve is restrained within.**** (\[GUILayoutOption\[]]\(/engine/6000.0/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.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).

## CurveField(SerializedProperty, Color, Rect, GUIContent, GUILayoutOption\[])

Make a field for editing an [AnimationCurve](/engine/6000.0/script-reference/unityengine/animationcurve.md).

```csharp
public static void CurveField(SerializedProperty property, Color color, Rect ranges, GUIContent label, params GUILayoutOption[] options)
```

### Parameters

**** (\[SerializedProperty]\(/engine/6000.0/script-reference/unityeditor/serializedproperty)): The curve to edit.**** (\[Color]\(/engine/6000.0/script-reference/unityengine/color)): The color to show the curve with.**** (\[Rect]\(/engine/6000.0/script-reference/unityengine/rect)): Optional rectangle that the curve is restrained within.**** (\[GUIContent]\(/engine/6000.0/script-reference/unityengine/guicontent)): Optional label to display in front of the field. Pass \[\[GUIContent.none] to hide the label.**** (\[GUILayoutOption\[]]\(/engine/6000.0/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.0/script-reference/unityengine/guilayout/width.md), [GUILayout.Height](/engine/6000.0/script-reference/unityengine/guilayout/height.md), [GUILayout.MinWidth](/engine/6000.0/script-reference/unityengine/guilayout/minwidth.md), [GUILayout.MaxWidth](/engine/6000.0/script-reference/unityengine/guilayout/maxwidth.md), [GUILayout.MinHeight](/engine/6000.0/script-reference/unityengine/guilayout/minheight.md), [GUILayout.MaxHeight](/engine/6000.0/script-reference/unityengine/guilayout/maxheight.md), [GUILayout.ExpandWidth](/engine/6000.0/script-reference/unityengine/guilayout/expandwidth.md), [GUILayout.ExpandHeight](/engine/6000.0/script-reference/unityengine/guilayout/expandheight.md).
