# AnimatorJobExtensions

> Static class providing extension methods for Animator and the animation C# jobs.

## Definition

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

```csharp
public static class AnimatorJobExtensions
```

## Remarks

The extension methods in this class can directly be used on an [Animator](/engine/6000.3/script-reference/unityengine/animator.md).

Additional Resources: [IAnimationJobPlayable](/engine/6000.3/script-reference/unityengine/animations/ianimationjobplayable.md).

## Static Methods

| Method                                                                                                                               | Description                                                                                                                                                                                                                                                                                                                                          |
| ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [AddJobDependency](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/addjobdependency.md)                 | Creates a dependency between animator jobs and the job represented by the supplied job handle. To add multiple job dependencies, call this method for each job that need to run before the Animator's jobs.                                                                                                                                          |
| [BindCustomStreamProperty](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/bindcustomstreamproperty.md) | Create a custom property in the [AnimationStream](/engine/6000.3/script-reference/unityengine/animations/animationstream.md) to pass extra data to downstream animation jobs in your graph. Custom properties created in the [AnimationStream](/engine/6000.3/script-reference/unityengine/animations/animationstream.md) do not exist in the scene. |
| [BindSceneProperty](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/bindsceneproperty.md)               | Create a PropertySceneHandle representing the new binding on the [Component](/engine/6000.3/script-reference/unityengine/component.md) property of a [Transform](/engine/6000.3/script-reference/unityengine/transform.md) in the Scene.                                                                                                             |
| [BindSceneTransform](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/bindscenetransform.md)             | Create a TransformSceneHandle representing the new binding between the [Animator](/engine/6000.3/script-reference/unityengine/animator.md) and a [Transform](/engine/6000.3/script-reference/unityengine/transform.md) in the Scene.                                                                                                                 |
| [BindStreamProperty](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/bindstreamproperty.md)             | Create a PropertyStreamHandle representing the new binding on the [Component](/engine/6000.3/script-reference/unityengine/component.md) property of a [Transform](/engine/6000.3/script-reference/unityengine/transform.md) already bound to the [Animator](/engine/6000.3/script-reference/unityengine/animator.md).                                |
| [BindStreamTransform](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/bindstreamtransform.md)           | Create a TransformStreamHandle representing the new binding between the [Animator](/engine/6000.3/script-reference/unityengine/animator.md) and a [Transform](/engine/6000.3/script-reference/unityengine/transform.md) already bound to the [Animator](/engine/6000.3/script-reference/unityengine/animator.md).                                    |
| [CloseAnimationStream](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/closeanimationstream.md)         | Close a stream that has been opened using [AnimatorJobExtensions.OpenAnimationStream](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/openanimationstream.md).                                                                                                                                                          |
| [OpenAnimationStream](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/openanimationstream.md)           | Open a new stream on the [Animator](/engine/6000.3/script-reference/unityengine/animator.md).                                                                                                                                                                                                                                                        |
| [ResolveAllSceneHandles](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/resolveallscenehandles.md)     | Newly created handles are always resolved lazily on the next access when the jobs are run. To avoid a cpu spike while evaluating the jobs you can manually resolve all handles from the main thread.                                                                                                                                                 |
| [ResolveAllStreamHandles](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/resolveallstreamhandles.md)   | Newly created handles are always resolved lazily on the next access when the jobs are run. To avoid a cpu spike while evaluating the jobs you can manually resolve all handles from the main thread.                                                                                                                                                 |
| [UnbindAllSceneHandles](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/unbindallscenehandles.md)       | Removes all PropertySceneHandles and TransformSceneHandles associated with the [Animator](/engine/6000.3/script-reference/unityengine/animator.md) instance. Use this method to manage the lifecycle of scene handles when the animated hierarchy changes.                                                                                           |
| [UnbindAllStreamHandles](/engine/6000.3/script-reference/unityengine/animations/animatorjobextensions/unbindallstreamhandles.md)     | Removes all PropertyStreamHandles and TransformStreamHandles associated with the [Animator](/engine/6000.3/script-reference/unityengine/animator.md) instance. Use this method to manage the lifecycle of stream handles when the animated hierarchy changes.                                                                                        |
