# PlayableDirector

> Instantiates a PlayableGraph from a PlayableAsset and controls playback of Playable objects. This API is mainly designed to provide scheduling and scene binding support and scheduling for the Timeline package. Our users may find limited use for it otherwise. Most of the functionality of this class can be replicated by using PlayableGraph.

## Definition

* **Type:** Class
* **Namespace:** [UnityEngine.Playables](/engine/6000.0/script-reference/unityengine/playables.md)
* **Assembly:** UnityEngine.DirectorModule
* **Inherits from:** [Behaviour](/engine/6000.0/script-reference/unityengine/behaviour.md)
* **Implements:** [IExposedPropertyTable](/engine/6000.0/script-reference/unityengine/iexposedpropertytable.md)

```csharp
[HelpURL("https://docs.unity3d.com/ScriptReference/Playables.PlayableDirector.html")]
public class PlayableDirector : Behaviour, IExposedPropertyTable
```

## Properties

| Property                                                                                                         | Description                                                                                                                                                                                                                                                       |
| ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [duration](/engine/6000.0/script-reference/unityengine/playables/playabledirector/duration.md)                   | The duration of the currently connected [Playable](/engine/6000.0/script-reference/unityengine/playables/playable.md) in seconds.                                                                                                                                 |
| [extrapolationMode](/engine/6000.0/script-reference/unityengine/playables/playabledirector/extrapolationmode.md) | Controls how the time is incremented when it goes beyond the duration of the playable.                                                                                                                                                                            |
| [initialTime](/engine/6000.0/script-reference/unityengine/playables/playabledirector/initialtime.md)             | The time at which the Playable should start when first played.                                                                                                                                                                                                    |
| [playableAsset](/engine/6000.0/script-reference/unityengine/playables/playabledirector/playableasset.md)         | The [PlayableAsset](/engine/6000.0/script-reference/unityengine/playables/playableasset.md) that is used to instantiate a playable for playback.                                                                                                                  |
| [playableGraph](/engine/6000.0/script-reference/unityengine/playables/playabledirector/playablegraph.md)         | The [PlayableGraph](/engine/6000.0/script-reference/unityengine/playables/playablegraph.md) created by the [PlayableDirector](/engine/6000.0/script-reference/unityengine/playables/playabledirector.md).                                                         |
| [playOnAwake](/engine/6000.0/script-reference/unityengine/playables/playabledirector/playonawake.md)             | Whether the playable asset will start playing back as soon as the component awakes.                                                                                                                                                                               |
| [state](/engine/6000.0/script-reference/unityengine/playables/playabledirector/state.md)                         | The current playing state of the component. (Read Only)                                                                                                                                                                                                           |
| [time](/engine/6000.0/script-reference/unityengine/playables/playabledirector/time.md)                           | The component's current time. This value is incremented according to the [PlayableDirector.timeUpdateMode](/engine/6000.0/script-reference/unityengine/playables/playabledirector/timeupdatemode.md) when it is playing. You can also change this value manually. |
| [timeUpdateMode](/engine/6000.0/script-reference/unityengine/playables/playabledirector/timeupdatemode.md)       | Controls how time is incremented when playing back.                                                                                                                                                                                                               |

## Methods

| Method                                                                                                                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [ClearGenericBinding](/engine/6000.0/script-reference/unityengine/playables/playabledirector/cleargenericbinding.md)               | Clears the binding of a reference object.                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| [ClearReferenceValue](/engine/6000.0/script-reference/unityengine/playables/playabledirector/clearreferencevalue.md)               | Clears an exposed reference value.                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| [DeferredEvaluate](/engine/6000.0/script-reference/unityengine/playables/playabledirector/deferredevaluate.md)                     | Schedules the [PlayableDirector](/engine/6000.0/script-reference/unityengine/playables/playabledirector.md) to perform [PlayableGraph.Evaluate](/engine/6000.0/script-reference/unityengine/playables/playablegraph/evaluate.md) on the [PlayableGraph](/engine/6000.0/script-reference/unityengine/playables/playablegraph.md) associated with the [PlayableDirector.playableAsset](/engine/6000.0/script-reference/unityengine/playables/playabledirector/playableasset.md) on the next update. |
| [Evaluate](/engine/6000.0/script-reference/unityengine/playables/playabledirector/evaluate.md)                                     | Immediately performs [PlayableGraph.Evaluate](/engine/6000.0/script-reference/unityengine/playables/playablegraph/evaluate.md) on the [PlayableGraph](/engine/6000.0/script-reference/unityengine/playables/playablegraph.md) associated with the [PlayableDirector.playableAsset](/engine/6000.0/script-reference/unityengine/playables/playabledirector/playableasset.md) at [PlayableDirector.time](/engine/6000.0/script-reference/unityengine/playables/playabledirector/time.md).           |
| [GetGenericBinding](/engine/6000.0/script-reference/unityengine/playables/playabledirector/getgenericbinding.md)                   | Returns a binding to a reference object.                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| [GetReferenceValue](/engine/6000.0/script-reference/unityengine/playables/playabledirector/getreferencevalue.md)                   | Retrieves an ExposedReference binding.                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| [Pause](/engine/6000.0/script-reference/unityengine/playables/playabledirector/pause.md)                                           | Pauses playback of the currently running playable.                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| [Play](/engine/6000.0/script-reference/unityengine/playables/playabledirector/play.md)                                             | Instatiates a [Playable](/engine/6000.0/script-reference/unityengine/playables/playable.md) using the provided [PlayableAsset](/engine/6000.0/script-reference/unityengine/playables/playableasset.md) and starts playback.                                                                                                                                                                                                                                                                       |
| [RebindPlayableGraphOutputs](/engine/6000.0/script-reference/unityengine/playables/playabledirector/rebindplayablegraphoutputs.md) | Rebinds each [PlayableOutput](/engine/6000.0/script-reference/unityengine/playables/playableoutput.md) of the [PlayableGraph](/engine/6000.0/script-reference/unityengine/playables/playablegraph.md).                                                                                                                                                                                                                                                                                            |
| [RebuildGraph](/engine/6000.0/script-reference/unityengine/playables/playabledirector/rebuildgraph.md)                             | Discards the existing [PlayableGraph](/engine/6000.0/script-reference/unityengine/playables/playablegraph.md) and creates a new instance.                                                                                                                                                                                                                                                                                                                                                         |
| [Resume](/engine/6000.0/script-reference/unityengine/playables/playabledirector/resume.md)                                         | Resume playing a paused playable.                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| [SetGenericBinding](/engine/6000.0/script-reference/unityengine/playables/playabledirector/setgenericbinding.md)                   | Sets the binding of a reference object from a [PlayableBinding](/engine/6000.0/script-reference/unityengine/playables/playablebinding.md).                                                                                                                                                                                                                                                                                                                                                        |
| [SetReferenceValue](/engine/6000.0/script-reference/unityengine/playables/playabledirector/setreferencevalue.md)                   | Sets an ExposedReference value.                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| [Stop](/engine/6000.0/script-reference/unityengine/playables/playabledirector/stop.md)                                             | Stops playback of the current [Playable](/engine/6000.0/script-reference/unityengine/playables/playable.md) and destroys the corresponding graph.                                                                                                                                                                                                                                                                                                                                                 |

## Events

| Member                                                                                       | Description                                                               |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| [paused](/engine/6000.0/script-reference/unityengine/playables/playabledirector/paused.md)   | Event that is raised when a PlayableDirector component has paused.        |
| [played](/engine/6000.0/script-reference/unityengine/playables/playabledirector/played.md)   | Event that is raised when a PlayableDirector component has begun playing. |
| [stopped](/engine/6000.0/script-reference/unityengine/playables/playabledirector/stopped.md) | Event that is raised when a PlayableDirector component has stopped.       |

## Inheritance

**Inherited Members:**

* [Behaviour.enabled](/engine/6000.0/script-reference/unityengine/behaviour/enabled.md)
* [Behaviour.isActiveAndEnabled](/engine/6000.0/script-reference/unityengine/behaviour/isactiveandenabled.md)
* [Component.GetComponent(Type)](/engine/6000.0/script-reference/unityengine/component/getcomponent.md#getcomponent\(type\))
* [Component.GetComponent\<T>()](/engine/6000.0/script-reference/unityengine/component/getcomponent.md)
* [Component.TryGetComponent(Type, Component)](/engine/6000.0/script-reference/unityengine/component/trygetcomponent.md)
* [Component.TryGetComponent\<T>(T)](/engine/6000.0/script-reference/unityengine/component/trygetcomponent.md)
* [Component.GetComponent(string)](/engine/6000.0/script-reference/unityengine/component/getcomponent.md#getcomponent\(string\))
* [Component.GetComponentInChildren(Type, bool)](/engine/6000.0/script-reference/unityengine/component/getcomponentinchildren.md#getcomponentinchildren\(type-bool\))
* [Component.GetComponentInChildren(Type)](/engine/6000.0/script-reference/unityengine/component/getcomponentinchildren.md#getcomponentinchildren\(type\))
* [Component.GetComponentInChildren\<T>(bool)](/engine/6000.0/script-reference/unityengine/component/getcomponentinchildren.md)
* [Component.GetComponentsInChildren(Type, bool)](/engine/6000.0/script-reference/unityengine/component/getcomponentsinchildren.md)
* [Component.GetComponentsInChildren\<T>(bool)](/engine/6000.0/script-reference/unityengine/component/getcomponentsinchildren.md#getcomponentsinchildrent\(bool\))
* [Component.GetComponentsInChildren\<T>(bool, List\<T>)](/engine/6000.0/script-reference/unityengine/component/getcomponentsinchildren.md)
* [Component.GetComponentsInChildren\<T>()](/engine/6000.0/script-reference/unityengine/component/getcomponentsinchildren.md#getcomponentsinchildrent\(\))
* [Component.GetComponentsInChildren\<T>(List\<T>)](/engine/6000.0/script-reference/unityengine/component/getcomponentsinchildren.md)
* [Component.GetComponentInParent(Type, bool)](/engine/6000.0/script-reference/unityengine/component/getcomponentinparent.md#getcomponentinparent\(type-bool\))
* [Component.GetComponentInParent(Type)](/engine/6000.0/script-reference/unityengine/component/getcomponentinparent.md#getcomponentinparent\(type\))
* [Component.GetComponentInParent\<T>(bool)](/engine/6000.0/script-reference/unityengine/component/getcomponentinparent.md#getcomponentinparentt\(bool\))
* [Component.GetComponentInParent\<T>()](/engine/6000.0/script-reference/unityengine/component/getcomponentinparent.md#getcomponentinparentt\(\))
* [Component.GetComponentsInParent(Type, bool)](/engine/6000.0/script-reference/unityengine/component/getcomponentsinparent.md)
* [Component.GetComponentsInParent\<T>(bool)](/engine/6000.0/script-reference/unityengine/component/getcomponentsinparent.md#getcomponentsinparentt\(bool\))
* [Component.GetComponentsInParent\<T>(bool, List\<T>)](/engine/6000.0/script-reference/unityengine/component/getcomponentsinparent.md)
* [Component.GetComponentsInParent\<T>()](/engine/6000.0/script-reference/unityengine/component/getcomponentsinparent.md#getcomponentsinparentt\(\))
* [Component.GetComponents(Type)](/engine/6000.0/script-reference/unityengine/component/getcomponents.md#getcomponents\(type\))
* [Component.GetComponents(Type, List\<Component>)](/engine/6000.0/script-reference/unityengine/component/getcomponents.md#getcomponents\(type-listcomponent\))
* [Component.GetComponents\<T>(List\<T>)](/engine/6000.0/script-reference/unityengine/component/getcomponents.md)
* [Component.GetComponents\<T>()](/engine/6000.0/script-reference/unityengine/component/getcomponents.md#getcomponentst\(\))
* [Component.GetComponentIndex()](/engine/6000.0/script-reference/unityengine/component/getcomponentindex.md)
* [Component.CompareTag(string)](/engine/6000.0/script-reference/unityengine/component/comparetag.md#comparetag\(string\))
* [Component.CompareTag(TagHandle)](/engine/6000.0/script-reference/unityengine/component/comparetag.md#comparetag\(taghandle\))
* [Component.SendMessageUpwards(string, Object, SendMessageOptions)](/engine/6000.0/script-reference/unityengine/component/sendmessageupwards.md#sendmessageupwards\(string-object-sendmessageoptions\))
* [Component.SendMessageUpwards(string, SendMessageOptions)](/engine/6000.0/script-reference/unityengine/component/sendmessageupwards.md#sendmessageupwards\(string-sendmessageoptions\))
* [Component.SendMessage(string, Object)](/engine/6000.0/script-reference/unityengine/component/sendmessage.md#sendmessage\(string-object\))
* [Component.SendMessage(string)](/engine/6000.0/script-reference/unityengine/component/sendmessage.md#sendmessage\(string\))
* [Component.SendMessage(string, Object, SendMessageOptions)](/engine/6000.0/script-reference/unityengine/component/sendmessage.md#sendmessage\(string-object-sendmessageoptions\))
* [Component.SendMessage(string, SendMessageOptions)](/engine/6000.0/script-reference/unityengine/component/sendmessage.md#sendmessage\(string-sendmessageoptions\))
* [Component.BroadcastMessage(string, Object, SendMessageOptions)](/engine/6000.0/script-reference/unityengine/component/broadcastmessage.md#broadcastmessage\(string-object-sendmessageoptions\))
* [Component.BroadcastMessage(string, SendMessageOptions)](/engine/6000.0/script-reference/unityengine/component/broadcastmessage.md#broadcastmessage\(string-sendmessageoptions\))
* [Component.transform](/engine/6000.0/script-reference/unityengine/component/transform.md)
* [Component.gameObject](/engine/6000.0/script-reference/unityengine/component/gameobject.md)
* [Component.tag](/engine/6000.0/script-reference/unityengine/component/tag.md)
* [Object.GetInstanceID()](/engine/6000.0/script-reference/unityengine/object/getinstanceid.md)
* [Object.GetHashCode()](/engine/6000.0/script-reference/unityengine/object/gethashcode.md)
* [Object.InstantiateAsync\<T>(T)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, Transform)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, Vector3, Quaternion)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, Transform, Vector3, Quaternion)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, int)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, int, Transform)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, int, Vector3, Quaternion)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, int, ReadOnlySpan\<Vector3>, ReadOnlySpan\<Quaternion>)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, int, Transform, Vector3, Quaternion)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, int, Transform, Vector3, Quaternion, CancellationToken)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, int, Transform, ReadOnlySpan\<Vector3>, ReadOnlySpan\<Quaternion>)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, int, Transform, ReadOnlySpan\<Vector3>, ReadOnlySpan\<Quaternion>, CancellationToken)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, InstantiateParameters, CancellationToken)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, int, InstantiateParameters, CancellationToken)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, Vector3, Quaternion, InstantiateParameters, CancellationToken)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, int, Vector3, Quaternion, InstantiateParameters, CancellationToken)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.InstantiateAsync\<T>(T, int, ReadOnlySpan\<Vector3>, ReadOnlySpan\<Quaternion>, InstantiateParameters, CancellationToken)](/engine/6000.0/script-reference/unityengine/object/instantiateasync.md)
* [Object.Instantiate(Object, Vector3, Quaternion)](/engine/6000.0/script-reference/unityengine/object/instantiate.md#instantiate\(object-vector3-quaternion\))
* [Object.Instantiate(Object, Vector3, Quaternion, Transform)](/engine/6000.0/script-reference/unityengine/object/instantiate.md#instantiate\(object-vector3-quaternion-transform\))
* [Object.Instantiate(Object)](/engine/6000.0/script-reference/unityengine/object/instantiate.md#instantiate\(object\))
* [Object.Instantiate(Object, Scene)](/engine/6000.0/script-reference/unityengine/object/instantiate.md#instantiate\(object-scene\))
* [Object.Instantiate\<T>(T, InstantiateParameters)](/engine/6000.0/script-reference/unityengine/object/instantiate.md)
* [Object.Instantiate\<T>(T, Vector3, Quaternion, InstantiateParameters)](/engine/6000.0/script-reference/unityengine/object/instantiate.md)
* [Object.Instantiate(Object, Transform)](/engine/6000.0/script-reference/unityengine/object/instantiate.md#instantiate\(object-transform\))
* [Object.Instantiate(Object, Transform, bool)](/engine/6000.0/script-reference/unityengine/object/instantiate.md#instantiate\(object-transform-bool\))
* [Object.Instantiate\<T>(T)](/engine/6000.0/script-reference/unityengine/object/instantiate.md)
* [Object.Instantiate\<T>(T, Vector3, Quaternion)](/engine/6000.0/script-reference/unityengine/object/instantiate.md)
* [Object.Instantiate\<T>(T, Vector3, Quaternion, Transform)](/engine/6000.0/script-reference/unityengine/object/instantiate.md)
* [Object.Instantiate\<T>(T, Transform)](/engine/6000.0/script-reference/unityengine/object/instantiate.md)
* [Object.Instantiate\<T>(T, Transform, bool)](/engine/6000.0/script-reference/unityengine/object/instantiate.md)
* [Object.Destroy(Object, float)](/engine/6000.0/script-reference/unityengine/object/destroy.md)
* [Object.DestroyImmediate(Object, bool)](/engine/6000.0/script-reference/unityengine/object/destroyimmediate.md)
* [Object.FindObjectsByType(Type, FindObjectsSortMode)](/engine/6000.0/script-reference/unityengine/object/findobjectsbytype.md#findobjectsbytype\(type-findobjectssortmode\))
* [Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)](/engine/6000.0/script-reference/unityengine/object/findobjectsbytype.md#findobjectsbytype\(type-findobjectsinactive-findobjectssortmode\))
* [Object.DontDestroyOnLoad(Object)](/engine/6000.0/script-reference/unityengine/object/dontdestroyonload.md)
* [Object.FindObjectsByType\<T>(FindObjectsSortMode)](/engine/6000.0/script-reference/unityengine/object/findobjectsbytype.md#findobjectsbytypet\(findobjectssortmode\))
* [Object.FindObjectsByType\<T>(FindObjectsInactive, FindObjectsSortMode)](/engine/6000.0/script-reference/unityengine/object/findobjectsbytype.md#findobjectsbytypet\(findobjectsinactive-findobjectssortmode\))
* [Object.FindFirstObjectByType\<T>()](/engine/6000.0/script-reference/unityengine/object/findfirstobjectbytype.md#findfirstobjectbytypet\(\))
* [Object.FindAnyObjectByType\<T>()](/engine/6000.0/script-reference/unityengine/object/findanyobjectbytype.md#findanyobjectbytypet\(\))
* [Object.FindFirstObjectByType\<T>(FindObjectsInactive)](/engine/6000.0/script-reference/unityengine/object/findfirstobjectbytype.md#findfirstobjectbytypet\(findobjectsinactive\))
* [Object.FindAnyObjectByType\<T>(FindObjectsInactive)](/engine/6000.0/script-reference/unityengine/object/findanyobjectbytype.md#findanyobjectbytypet\(findobjectsinactive\))
* [Object.FindFirstObjectByType(Type)](/engine/6000.0/script-reference/unityengine/object/findfirstobjectbytype.md#findfirstobjectbytype\(type\))
* [Object.FindAnyObjectByType(Type)](/engine/6000.0/script-reference/unityengine/object/findanyobjectbytype.md#findanyobjectbytype\(type\))
* [Object.FindFirstObjectByType(Type, FindObjectsInactive)](/engine/6000.0/script-reference/unityengine/object/findfirstobjectbytype.md#findfirstobjectbytype\(type-findobjectsinactive\))
* [Object.FindAnyObjectByType(Type, FindObjectsInactive)](/engine/6000.0/script-reference/unityengine/object/findanyobjectbytype.md#findanyobjectbytype\(type-findobjectsinactive\))
* [Object.ToString()](/engine/6000.0/script-reference/unityengine/object/tostring.md)
* [Object.name](/engine/6000.0/script-reference/unityengine/object/name.md)
* [Object.hideFlags](/engine/6000.0/script-reference/unityengine/object/hideflags.md)

### Operators

| Operator                                                                           | Description                                                             |
| ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| [operator ==](/engine/6000.0/script-reference/unityengine/object/op-equality.md)   | Compares two object references to see if they refer to the same object. |
| [bool](/engine/6000.0/script-reference/unityengine/object/op-implicit.md)          | Determines whether the object exists.                                   |
| [operator !=](/engine/6000.0/script-reference/unityengine/object/op-inequality.md) | Compares if two objects refer to a different object.                    |
