# AnimationEvent

> AnimationEvent lets you call a script function similar to SendMessage as part of playing back an animation.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine](/engine/6000.7/script-reference/unityengine.md)
* **Assembly:** UnityEngine.AnimationModule

```csharp
public sealed class AnimationEvent
```

## Remarks

Animation events support functions that take zero or one parameter. The parameter can be a float, an int, a string, an object reference, or an AnimationEvent.

A more detailed example below shows a more complex way of creating an animation.  In this script example the `Animator` component is accessed and a `Clip` from it obtained.  (This clip was set up in the Animation window.)  The clip lasts for 2 seconds.  An `AnimationEvent` is created, and has parameters set.  The parameters include the function `PrintEvent()` which will handle the event. The event is then added to the clip.  This all happens in `Start()`.  Once the game has launched the event is called after 1.3s and then repeats every 2s.

## Examples

```csharp
 // Animation Event example
 // Small example that can be called on each specified frame.
 // The code is executed once per animation loop.

using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour
{
    public void PrintEvent()
    {
        Debug.Log("PrintEvent");
    }
}
```

```csharp
 // Add an Animation Event to a GameObject that has an Animator
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour
{
    public void Start()
    {
        // existing components on the GameObject
        AnimationClip clip;
        Animator anim;

        // new event created
        AnimationEvent evt;
        evt = new AnimationEvent();

        // put some parameters on the AnimationEvent
        //  - call the function called PrintEvent()
        //  - the animation on this object lasts 2 seconds
        //    and the new animation created here is
        //    set up to happen 1.3s into the animation
        evt.intParameter = 12345;
        evt.time = 1.3f;
        evt.functionName = "PrintEvent";

        // get the animation clip and add the AnimationEvent
        anim = GetComponent<Animator>();
        clip = anim.runtimeAnimatorController.animationClips[0];
        clip.AddEvent(evt);
    }

    // the function to be called as an event
    public void PrintEvent(int i)
    {
        print("PrintEvent: " + i + " called at: " + Time.time);
    }
}
```

## Constructors

| Constructor                                                                            | Description                    |
| -------------------------------------------------------------------------------------- | ------------------------------ |
| [AnimationEvent()](/engine/6000.7/script-reference/unityengine/animationevent/ctor.md) | Creates a new animation event. |

## Properties

| Property                                                                                                           | Description                                                                              |
| ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------- |
| [animationState](/engine/6000.7/script-reference/unityengine/animationevent/animationstate.md)                     | The animation state that fired this event (Read Only).                                   |
| [animatorClipInfo](/engine/6000.7/script-reference/unityengine/animationevent/animatorclipinfo.md)                 | The animator clip info related to this event (Read Only).                                |
| [animatorStateInfo](/engine/6000.7/script-reference/unityengine/animationevent/animatorstateinfo.md)               | The animator state info related to this event (Read Only).                               |
| [floatParameter](/engine/6000.7/script-reference/unityengine/animationevent/floatparameter.md)                     | Float parameter that is stored in the event and will be sent to the function.            |
| [functionName](/engine/6000.7/script-reference/unityengine/animationevent/functionname.md)                         | The name of the function that will be called.                                            |
| [intParameter](/engine/6000.7/script-reference/unityengine/animationevent/intparameter.md)                         | Int parameter that is stored in the event and will be sent to the function.              |
| [isFiredByAnimator](/engine/6000.7/script-reference/unityengine/animationevent/isfiredbyanimator.md)               | Returns true if this Animation event has been fired by an Animator component.            |
| [isFiredByLegacy](/engine/6000.7/script-reference/unityengine/animationevent/isfiredbylegacy.md)                   | Returns true if this Animation event has been fired by an Animation component.           |
| [messageOptions](/engine/6000.7/script-reference/unityengine/animationevent/messageoptions.md)                     | Function call options.                                                                   |
| [objectReferenceParameter](/engine/6000.7/script-reference/unityengine/animationevent/objectreferenceparameter.md) | Object reference parameter that is stored in the event and will be sent to the function. |
| [stringParameter](/engine/6000.7/script-reference/unityengine/animationevent/stringparameter.md)                   | String parameter that is stored in the event and will be sent to the function.           |
| [time](/engine/6000.7/script-reference/unityengine/animationevent/time.md)                                         | The time at which the event will be fired off.                                           |
