# AnimationCurve

> Creates an animation curve from an arbitrary number of keyframes.

## Definition

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

## AnimationCurve(Keyframe\[])

Creates an animation curve from an arbitrary number of keyframes.

```csharp
public AnimationCurve(params Keyframe[] keys)
```

### Parameters

**** (\[Keyframe\[]]\(/engine/6000.6/script-reference/unityengine/keyframe)): An array of Keyframes used to define the curve.

### Remarks

This creates a curve from variable number of [Keyframe](/engine/6000.6/script-reference/unityengine/keyframe.md) parameters. If you want to create curve from an array of keyframes, create an empty curve and assign [AnimationCurve.keys](/engine/6000.6/script-reference/unityengine/animationcurve/keys.md) property.

### Examples

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

public class AnimCurveExample : MonoBehaviour
{
    public AnimationCurve curve;

    void Start()
    {
        curve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(1, 1));
        curve.preWrapMode = WrapMode.PingPong;
        curve.postWrapMode = WrapMode.PingPong;
    }

    void Update()
    {
        transform.position = new Vector3(transform.position.x, curve.Evaluate(Time.time), transform.position.z);
    }
}
```

## AnimationCurve()

Creates an empty animation curve.

```csharp
public AnimationCurve()
```
