# GetKeys(Span<Keyframe>)

> Get all keys defined in the AnimationCurve.

## Definition

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

```csharp
public void GetKeys(Span<Keyframe> keys)
```

### Parameters

**** (\[Span\<Keyframe>]\(https\://learn.microsoft.com/dotnet/api/system.span-1)): Keyframe array to copy the keys into.

### Remarks

This lets you clear, add or remove any keys from the array. If keys are not sorted by time, they will be automatically sorted on assignment.

Note that the array is "by value", i.e. getting keys returns a copy of all keys.

Additional Resources: [Keyframe](/engine/6000.6/script-reference/unityengine/keyframe.md) struct, [AnimationCurve.AddKey](/engine/6000.6/script-reference/unityengine/animationcurve/addkey.md), [AnimationCurve.RemoveKey](/engine/6000.6/script-reference/unityengine/animationcurve/removekey.md) functions.

### Examples

```csharp
using UnityEngine;
using Unity.Collections;

public class AnimCurveExample : MonoBehaviour
{
    public AnimationCurve curve;

    void Start()
    {
        curve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(1, 1));
        var keys = new NativeArray<Keyframe>(curve.length, Allocator.Temp);
        curve.GetKeys(keys);
    }
}
```
